如何在 SQL LIKE % % 中添加 char 类型的 SqlParameter?
How to add char type SqlParameter in SQL LIKE % %?
无法正常工作,如何在 SQL LIKE % % 类型为 char 时添加参数?
SQL.Append("(Code LIKE @Code)");
var sqlParameter = new SqlParameter("@Code",
System.Data.SqlDbType.Char,
10,
System.Data.ParameterDirection.Input,
true,
0,
0,
"Code",
System.Data.DataRowVersion.Current,
"'%300%'");
尝试使用不带单引号的参数值。我认为他们将您的价值部分作为 string literal 而不是参数。
"%300%"
您的代码有两处错误,第一个 ,您需要从字符串中删除单引号。第二个是您使用 System.Data.SqlDbType.Char
作为数据类型并将大小 10 传递给构造函数这一事实。这将在你的字符串末尾填充 10 个空格,有效地将你的字符串变成 "'%300%' "
改用SqlDbType.VarChar
。此外,您不需要构造函数中的所有这些参数,只需填写您需要的 3,然后使用您创建的参数的 .Value
属性。
SQL.Append("(Code LIKE @Code)");
var sqlParameter = new SqlParameter("@Code", SqlDbType.VarChar, 10);
sqlParameter.Value = "%300%";
另外,还有一个技巧可能对你有用。如果您想始终将 % 放在两边,但又不想让用户必须提供它们,您可以将它们放在查询中并仍然使用参数。
string code = "300";
SQL.Append("(Code LIKE '%' + @Code + '%')");
var sqlParameter = new SqlParameter("@Code", SqlDbType.VarChar, 10);
sqlParameter.Value = code;
无法正常工作,如何在 SQL LIKE % % 类型为 char 时添加参数?
SQL.Append("(Code LIKE @Code)");
var sqlParameter = new SqlParameter("@Code",
System.Data.SqlDbType.Char,
10,
System.Data.ParameterDirection.Input,
true,
0,
0,
"Code",
System.Data.DataRowVersion.Current,
"'%300%'");
尝试使用不带单引号的参数值。我认为他们将您的价值部分作为 string literal 而不是参数。
"%300%"
您的代码有两处错误,第一个 System.Data.SqlDbType.Char
作为数据类型并将大小 10 传递给构造函数这一事实。这将在你的字符串末尾填充 10 个空格,有效地将你的字符串变成 "'%300%' "
改用SqlDbType.VarChar
。此外,您不需要构造函数中的所有这些参数,只需填写您需要的 3,然后使用您创建的参数的 .Value
属性。
SQL.Append("(Code LIKE @Code)");
var sqlParameter = new SqlParameter("@Code", SqlDbType.VarChar, 10);
sqlParameter.Value = "%300%";
另外,还有一个技巧可能对你有用。如果您想始终将 % 放在两边,但又不想让用户必须提供它们,您可以将它们放在查询中并仍然使用参数。
string code = "300";
SQL.Append("(Code LIKE '%' + @Code + '%')");
var sqlParameter = new SqlParameter("@Code", SqlDbType.VarChar, 10);
sqlParameter.Value = code;