我有这部分代码
string query = "SELECT ID, COL1 FROM TABLE1 WHERE CONTAINS(COL1,@text)";
sqlCommand.CommandText = sql;
sqlCommand.Parameters.Add("@text", value+"*");
value
是一个函数参数。
对于全文搜索,sql语句必须如下:
SELECT ID, COL1 FROM TABLE1 WHERE CONTAINS(COL1,'"eng*"')
它可以搜索以“eng”开头的字符串 - >英语,bla blah。
但是在C#中执行上面的代码然后ExecuteReader()
返回空列表。
@text的值为"sometext*"
,但我想添加' '
个字符。
我试过string query = "SELECT ID, COL1 FROM TABLE1 WHERE CONTAINS(COL1,'@text')";
但它不起作用,返回空列表。
为什么?如何继续@text
参数必须包含''
个字符而非搜索值?
谢谢
答案 0 :(得分:0)
您是否尝试过指定数据类型?我认为你不应该在sqlcommand字符串中使用引号。
sqlCommand.Parameters.Add("@text", SqlDbType.VarChar);
sqlCommand.Parameters["@text"].Value = value+"*";
或SqlDbType.NVarChar。
答案 1 :(得分:0)
您可以尝试使用sqlCommand.Parameters.AddWithValue("@text", value+"*");
如果以上操作不起作用,您可以使用SQL Parameter和SqlDBType。
我认为您的SQL查询错误。请参阅this帖子帮助。