本帖最后由 u013776377 于 2014-03-05 19:45:45 编辑

解决方案 »

  1.   

    LZ确保你的SQL语句没有写错,在sqlserver里面执行能查到数据不?
      

  2.   

      SqlParameter[] paras = { 
                                           new SqlParameter("@pagesize",rp),
                                           new SqlParameter("@page",page),
                                           new SqlParameter("@RealName",user.RealName)};
    确保你的参数是正确的,同时,确保加上参数之后,SQL语句在查询器中还能查得到结果,最好的方法是打断点
      

  3.   


    我把 sql 字符串 复制到  新建查询窗口里   把参数换成数字可以查询到结果, 不知一到vs 就null
      

  4.   

    这是 web config    
    <appSettings>
      <add key="ConStr" value="data source=(local);database=xxx;uid=sa;password=xxx"/> </appSettings> 
      

  5.   


    我把 sql 字符串 复制到  新建查询窗口里   把参数换成数字可以查询到结果, 不知一到vs 就null
    那就是代码的问题了,单纯看我也不知道哪儿有错,楼主还是打个断点调试下吧,这是作为程序员的基本技能
      

  6.   

    我怀疑是  RealName like '%@RealName%' 这里@RealName 参数 换成 字符串后 会不会 是 "名字" 这样
      

  7.   


    貌似  like 里面不能参数化的   你老老实实把字符串拼接进去试试RealName like '%'"+user.RealName+"'%'
      

  8.   


    貌似  like 里面不能参数化的   你老老实实把字符串拼接进去试试RealName like '%'"+user.RealName+"'%' 不是有个  过滤 引号"  的语句 吗  看防止sql注入的时候 好像看到   那个@RealName 变成具体字符串  会不会多个引号
      

  9.   

    like '%@RealName%'";这样的SQL语句语法本身就是不对的,应该写成这样:like '%'+ @RealName +'%'如果按照之前的写法,@ReadlName参数的值就没传进去,而是变成了字符串 '@RealName'
      

  10.   

    SqlDataReader 不能直接根据字段反回结果,要通过GetValue(字段顺序)来获取
      

  11.   

    用SqlDataReader 读数据时不能用using !
    建议这种写法:using (SqlConnection con = connection())
                 {
     
                  }
      

  12.   

    先把条件都删除就留一个 
    sql += "select TOP (@pagesize) * from [tb_User]";看看是否有数据库,如果有数据就是你后面条件写的不对。