Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数化查询,带%_C#_Sql Server 2008_Select_Parameterized - Fatal编程技术网

C# 参数化查询,带%

C# 参数化查询,带%,c#,sql-server-2008,select,parameterized,C#,Sql Server 2008,Select,Parameterized,我有一个select语句 command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" + " WHERE STATE LIKE @STATE + '%';"; 这给了我一个“'”错误 我试过这个 command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" + " WHERE

我有一个select语句

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE + '%';";
这给了我一个“'”错误

我试过这个

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE" + "'%';";

这给了我“%”错误。。。正确的方法是什么?

尝试将
%
放在您要绑定的字符串中

stateStr += "%";

然后绑定
stateStr

您必须在实际参数值中添加%,而不是在查询中:

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE WHERE STATE LIKE @STATE";
command.Parameters.AddWithValue("STATE", "CALI%");
例如,如果在字符串
valState
中保存了一些值,只需在
AddWithValue
中追加
%

string valState = "Cali";
// ...
command.Parameters.AddWithValue("STATE", valState + "%");

一个小建议:不要在sql查询中使用字符串连接;)当然可以。。。还有什么其他的选择吗?找到一个了,先生。。。感谢您参见Burgos post:使用参数类!谢谢布尔戈斯。。。状态是一个参数。。。如果我理解你们的要求,我不能硬编码更新后的答案会起作用。如果没有,你能更新你的问题吗?没问题!很高兴我帮了忙!谢谢碎纸机。。。但是STATE的值是作为一个参数来的,所以我不想硬编码,这样您就可以像我在编辑中那样将“%”附加到STATE参数。或者像Burgos在编辑中那样将其附加到实际的bind语句中。这就是你的意思吗?