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好像就么有用了
在线等待哦

解决方案 »

  1.   

    string sql = "select * from books where title like '%'+@title+'%'";
      

  2.   

    select * from books where title like '%'+title+'%'
      

  3.   

    select * from books where title like '%'+@title+'%'
      

  4.   

    create proc pp(@title nvarchar(4000)
    as
    exec('select * from books where title like ''%'+@title+'%''')然后调用存储过程,利用参数化防止注入危险
      

  5.   

    create proc proc_searchBook
    (
    @title nvarchar(50)
    ) as
    select * from books where title like '%'+@title+'%'哪儿有问题啊 我这样写了的啊 在数据库执行没有问题 搬到这
    SqlDataReader dr = SQLDBHelper.ExecuteReader(sql,parm,CommandType.StoredProcedure);里面出来后就没有like了
      

  6.   

    StringBuilder strb = new StringBuilder("select * from Tb where ProductName like N'%'+@Name +'%'");
    title like @name
    sqlparameter parm.Value = "%"+name+"%";  
      

  7.   

    可以在存储过程加上print打印出SQL语句,看看有什么错.Net技术群108412141
    共同学习.Net技术,分享.Net学习资料,分享.Net工作机会
      

  8.   

    string sql = "select * from books where title like '%@title%'";
    @title不能放在单引里面,否则就会被解析成字符串...
      

  9.   

    string sql = "select * from books where title like @title";
    title中的内容是%name%,也就是要把%放到@title中就可以了。
      

  10.   

    例如:  
          string sql = "select * from a where name like @name";
                SqlDataReader sdr = Tool.ExecuteReader(sql, new SqlParameter("@name", "%张%"));