SQL +西里尔字母支持+参数化查询+多项选择
本文关键字:查询 选择 参数 SQL 支持 | 更新日期: 2023-09-27 18:07:33
到目前为止我有这个代码:
string userInput = Textbox1.text;
string query = "SELECT * FROM Books WHERE BookName = @Title";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@Title", userInput);
和我需要这个查询来支持西里尔字符,并使用N''来支持西里尔字符:
SELECT * FROM Books Where BookName = N'UserInput%'
我也需要'%',因为我想找到与UserInput匹配的所有书籍。
由于我不使用。net,所以没有进行测试,但我可能会这样做。
string UserInput = Textbox1.text;
string query = "SELECT * FROM Books WHERE BookName like @Title";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@Title", UserInput+"%");
将查询中的"=
"改为"like
",将"%
"添加到用户输入中,并确保"Books"表中"BookName"的数据类型为"nvarchar
"。
您可以使用LIKE操作符,例如
SELECT * FROM Books WHERE BookName LIKE @Title
要给parameter赋值,只需在string
后面加上"%"cmd.Parameters.AddWithValue("@Title", UserInput + "%");
您需要Unicode支持,而不仅仅是西里尔字母支持。
Books.BookName
的类型是什么?是NVARCHAR(x)
吗?
System.String
已经是Unicode了
您可以尝试手动指定输入类型:cmd.Parameters.Add("@Title", SqlDbType.NVarChar, x)