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

【100分】疑难有关问题,请高手围观、解答!

2012-03-18 
【100分】疑难问题,请高手围观、解答!!!!!!在asp.net后台拼SQL语句,发现一个很妖的问题,代码如下:C# codeif (

【100分】疑难问题,请高手围观、解答!!!!!!
在asp.net后台拼SQL语句,发现一个很妖的问题,代码如下:

C# code
if (!string.isNullOrEmpty(txtClient.Text.Trim())){            str += " and name like @client ";            parameters.Add(new SqlParameter("@client", "%" + txtClient.Text.Trim() + "%"));}

一般来说,这里拼LIKE语句,应该是要加单引号的
("'%" + txtClient.Text.Trim() + "%'"),
但是我在这里加上单引号恰恰不行,
请问这个情况有没有人遇到过,
是什么原因导致的?
数据库的设定不同导致的吗?
需要怎么解决?


[解决办法]
sqlparameter不需要加 会根据类型转
[解决办法]
C# code
/// <summary>        /// 根据日期,资源名称,资源描述查询资源信息        /// </summary>        /// <returns></returns>        public DataSet FN_SerchByDateAndType(Guid FolderId, NRModel.File model, string createdate, string endate)        {            string strSql = "select * from t_File where 1 =1 and FolderId=@FolderId";            string strWhere = "";            if (!string.IsNullOrEmpty(model.FileNam))            {                strWhere += " and FileNam like @FileNam";            }            //if (!string.IsNullOrEmpty(model.Decription)k)            //{            //    strWhere += " and Decription like @Decription";            //}            if (!string.IsNullOrEmpty(createdate) || !string.IsNullOrEmpty(endate))            {                strWhere += " and CreateOn between @createdate and @endate order by ModefyOn desc";            }            strSql += strWhere;            SqlParameter[] parameters = {                                new SqlParameter("@FolderId", SqlDbType.UniqueIdentifier),                                new SqlParameter("@FileNam", SqlDbType.NVarChar, 256),                                new SqlParameter("@createdate", SqlDbType.NVarChar),                                new SqlParameter("@endate", SqlDbType.NVarChar)                        };            parameters[0].Value = FolderId;            parameters[1].Value = "%" + model.FileNam + "%";            //parameters[1].Value = "%" + model.Decription + "%";            parameters[2].Value = createdate;            parameters[3].Value = endate;            return DbHelperSQL.Query(strSql, parameters);            //SqlParameter[] parameters = new SqlParameter[4];            //parameters[0] = new SqlParameter("@FileNam", model.FileNam);            //parameters[1] = new SqlParameter("@stardate", createdate);            //parameters[2] = new SqlParameter("@enddate", endate);            ////执行存储过程            //return DbHelperSQL.RunProcedure("P_UserSerch", parameters, "t_File");        }
[解决办法]
因为现在已经是字符串形式了,就没必要加''了

"%" + txtClient.Text.Trim() + "%"

"%查询条件%" 最终得到的使这个。你如果加上

"'%查询条件%'"
这样就不对了!
[解决办法]
拼接的需要,像这样参数的就不需要了

 
 
 
 
----------------------------------签----------名----------栏----------------------------------
[解决办法]
探讨
在asp.net后台拼SQL语句,发现一个很妖的问题,代码如下:
C# code
if (!string.isNullOrEmpty(txtClient.Text.Trim()))
{
str += " and name like @client ";
parameters.Add(new SqlParameter("@client", "%" ……

热点排行