参数化查询与%

Eag*_*Fox 2 c# select parameterized sql-server-2008

我有一个选择声明

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE + '%';";
Run Code Online (Sandbox Code Playgroud)

这给了我一个"'"错误

我试过这个

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE" + "'%';";
Run Code Online (Sandbox Code Playgroud)

这给了'%'错误......正确的方法是什么

Nem*_*ric 7

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

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE WHERE STATE LIKE @STATE";
command.Parameters.AddWithValue("STATE", "CALI%");
Run Code Online (Sandbox Code Playgroud)

valState例如,如果您在字符串中保存了一些值,则只需附加%AddWithValue:

string valState = "Cali";
// ...
command.Parameters.AddWithValue("STATE", valState + "%");
Run Code Online (Sandbox Code Playgroud)