对于 普通的 select等sql语句, 正常的参数化语句 格式:
but please attention to the likesql
So the
对本文提供了有价值的文章有:
c# sql like参数
2008-08-08 10:09
参数化的意义在于把对应的值从参数中提供,对于like语句,like后面的值则包括了单引号中的所有部分,包括百分号(%),因此在参数化like对应的值时,应该把百分号移到参数值中提供,像这样: Cmd.Parameters["@KeyWord"].Value = "%" + StrKeyWord +"%"; 可别奢想在sql语句中像这样的样子: Select * From [TableName]Where [Column1] like'%@KeyWord%' 不会报错,不过你不可能查询到想要的结果 |
写个列子
public DataTable GetTreeName(string treename)
{
string sql =string.Format(@"
select ID,Name,Code from Tree
where len(Name)>0 and Name like {0}
order by len(Name) asc
", "@treename");
SqlParameter[] parameters = {
new SqlParameter("@treename", SqlDbType.VarChar,200)};
parameters[0].Value = "%"+treename+"%";
return SqlHelper.ExecuteDataTable(SQLHelper.SqlHelper.connstr, CommandType.Text, sql, parameters);
}
parameters[0].Value = "%"+treename+"%";
"'%" 不要加单引号