string sql = "select * from books where title like '%"+name+"%'";
string sql = "select * from books where title like '%@title%'";select * from books where title like '%c%'//string sql = "select * from books where title like '%"+name+"%'";
string sql = "proc_searchBook";
SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter("@title",Bname)
};
List<Book> allBook = new List<Book>();
SqlDataReader dr = SQLDBHelper.ExecuteReader(sql,parm,CommandType.StoredProcedure);
高手看看错在哪儿啊 我执行的时候好像是like没有了 要写全名才可以查到数据
我开始是用的@参数 后来改成平凑的 再改成存储过程 在数据库直接执行就有数据 经常上面那段代码 like好像就么有用了
在线等待哦
string sql = "select * from books where title like '%@title%'";select * from books where title like '%c%'//string sql = "select * from books where title like '%"+name+"%'";
string sql = "proc_searchBook";
SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter("@title",Bname)
};
List<Book> allBook = new List<Book>();
SqlDataReader dr = SQLDBHelper.ExecuteReader(sql,parm,CommandType.StoredProcedure);
高手看看错在哪儿啊 我执行的时候好像是like没有了 要写全名才可以查到数据
我开始是用的@参数 后来改成平凑的 再改成存储过程 在数据库直接执行就有数据 经常上面那段代码 like好像就么有用了
在线等待哦
as
exec('select * from books where title like ''%'+@title+'%''')然后调用存储过程,利用参数化防止注入危险
(
@title nvarchar(50)
) as
select * from books where title like '%'+@title+'%'哪儿有问题啊 我这样写了的啊 在数据库执行没有问题 搬到这
SqlDataReader dr = SQLDBHelper.ExecuteReader(sql,parm,CommandType.StoredProcedure);里面出来后就没有like了
title like @name
sqlparameter parm.Value = "%"+name+"%";
共同学习.Net技术,分享.Net学习资料,分享.Net工作机会
@title不能放在单引里面,否则就会被解析成字符串...
title中的内容是%name%,也就是要把%放到@title中就可以了。
string sql = "select * from a where name like @name";
SqlDataReader sdr = Tool.ExecuteReader(sql, new SqlParameter("@name", "%张%"));