我试图使用包含运营商。它工作正常的测试数据,例如,点击  WHERE CONTAINS(file,'"*ash*"')

不过,我想从使用类似CONTAINS(file,'"*@key*"')一个TextBox的关键字,但是这似乎没有工作。任何建议请。

由于

有帮助吗?

解决方案

在@用于在SQL声明一个变量。出于这个原因,它并不需要是引号内。例如:

DECLARE @Key varchar(100);
SET @Key = '*ash*'; 
SELECT file FROM SomeTable WHERE CONTAINS(file, @Key);

编辑:如果您传递内嵌SQL通过您的代码的话,我建议是这样的:

<强> C#示例:

string key = textBox1.Text;
string query = "SELECT file FROM SomeTable WHERE ";
query += String.Format("CONTAINS(file, '\"*{0}*\"')", key);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top