首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

C#传参查询用like查询不出来,该怎么处理

2012-02-02 
C#传参查询用like查询不出来两种写法第一种除了like查询不出来,其他都OK另一种都可以底下是like不行的publ

C#传参查询用like查询不出来
两种写法第一种除了like   查询不出来,其他都OK   另一种都   可以
底下是like不行的
public   DataTable   GetTable(string   conditionClause,   string   fields,string   tables,   params   string[]   parameters)
{
int   paramCount   =   parameters.Length;
string[]   paramNames   =   new   string[paramCount];
string   clause   = " ";
if(conditionClause!=null||conditionClause!=string.Empty)
clause=   conditionClause.ToLower().Trim();
if   (clause   !=   string.Empty)
{
if   (paramCount   >   0)
{
for   (int   i   =   0;   i   <   paramCount;   i++)
{
paramNames[i]   =   "@param "   +   i.ToString();
}
clause   =   string.Format(conditionClause,   paramNames);
}
if   (!clause.Trim().StartsWith( "and "))   clause   =   "   and   "   +   clause;
}

SqlCommand   cmd   =   new   SqlCommand();
string   sql   =   "select       "+fields+ "   from   "+tables+ "   where   1=1   "   +   clause;
cmd.CommandText   =   sql;
SqlParameterCollection   paramCollection   =   cmd.Parameters;
if   (clause   !=   string.Empty)
{
for   (int   j   =   0;   j   <   paramCount;   j++)
{
paramCollection.Add(new   SqlParameter(paramNames[j],   SqlDbType.NChar));
if   (parameters[j]   !=   null)
{
paramCollection[paramNames[j]].Value   =   parameters[j];
}
else
{
paramCollection[paramNames[j]].Value   =   string.Empty;
}
}
}
return   new   DataHelper().GetTable(cmd);
}
按下面一种就可以了,很怪的问题哦
public   DataTable   GetLikeList(string   tables,string   fields,string   text,string   status)
{
SqlCommand   cmd   =   new   SqlCommand();
string   sql= "select   "+fields+ "   from   "+tables+ "   where   ([title]   like   @param0   or   [content]   like   @param0)   and   status=@param1 ";
cmd.CommandText=sql;
SqlParameterCollection   paramCollection   =   cmd.Parameters;
paramCollection.Add(new   SqlParameter( "@param0 ",SqlDbType.NVarChar));
paramCollection.Add(new   SqlParameter( "@param1 ",SqlDbType.NVarChar));
paramCollection[ "@param0 "].Value=text;
paramCollection[ "@param1 "].Value=status;
return   new   DataHelper().GetTable(cmd);
}
在线等,急用

[解决办法]
加个断点看看 你的 第一种方法 到底把 sql 拼成什么样了。
[解决办法]
like 应该是 like '%xxx% '
[解决办法]
楼上正解
[解决办法]
like查询时conditionClause传了个什么值?
[解决办法]
string sql = "select "+fields+ " from "+tables+ " where 1=1 " + clause;


是什么东西呢?like %

热点排行