到目前为止我有这个代码:
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匹配的书籍。
答案 0 :(得分:3)
由于我不使用.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
。
答案 1 :(得分:2)
您可以使用LIKE运算符,例如
SELECT * FROM Books WHERE BookName LIKE @Title
要为参数赋值,您只需在字符串
的末尾添加“%”即可cmd.Parameters.AddWithValue("@Title", UserInput + "%");
答案 2 :(得分:1)
您需要Unicode支持,而不仅仅是西里尔语支持。
Books.BookName
的类型是什么?是NVARCHAR(x)
吗?
System.String
已经是Unicode。
您可以尝试手动指定输入类型:cmd.Parameters.Add("@Title", SqlDbType.NVarChar, x)