我在数据库中执行这条语句能查到数据
SELECT Fun.NodeId, Fun.Node, Fun.Url FROM RoleRight INNER JOIN Fun ON RoleRight.NodeId = Fun.NodeId where RoleRight.roleId=4 and ParentId=0
但是在后台代码中运行反而查不到,hasrows为false
SELECT Fun.NodeId, Fun.Node, Fun.Url FROM RoleRight INNER JOIN Fun ON RoleRight.NodeId = Fun.NodeId where RoleRight.roleId=@roleId and ParentId=@parentNoId不知道是怎么回事!
请大家帮帮忙!

解决方案 »

  1.   

    @roleId
    @parentNoId传值问题把你传值部分的代码帖上来看看
      

  2.   

    程序是不会有怪异事件的,出错的都是人!!
    你仔细看看你的=@roleId =@parentNoId的值是否正确
      

  3.   

     public static IList<Fun> SelectSysFunByNodeId(int roleId, int parentNoId)
           {           string sql = "SELECT Fun.NodeId, Fun.Node, Fun.Url FROM RoleRight INNER JOIN Fun ON RoleRight.NodeId = Fun.NodeId where RoleRight.roleId=@roleId and ParentId=@parentNoId";
               using (SqlDataReader read = DBHelper.GetReader(sql, new SqlParameter("@roleId", roleId), new SqlParameter("@parentNoId", parentNoId)))
               {
                   List<Fun> sysFuns = new List<Fun>();
                   while (read.Read())
                   {
                       sysFuns.Add(Pupolater(read));
                   }
                   return sysFuns;
               }
           }
      

  4.   

    调用存储过程之前  组织存储过程参数是否有问题 比如
    SqlParameter[] parameters = {
    new SqlParameter("@roleId ", SqlDbType.Int,4),new SqlParameter("@parentNoId", SqlDbType.Int,4)};
            parameters[0].Value = xxx;
            parameters[0].Value = xxxxx;   这里parameters[]的项都成0了
      

  5.   

    代码没问题,跟踪一下数据库或者把parentID条件去掉试下,再根据执行结果看问题出在哪
      

  6.   


    直接roleId=4 parentNoId=0 测试是否有返回值 有的话roleId,parentNoId 传值问题 没有则方法问题
      

  7.   

    把你传@roleId,@parentNoId这2值的代码贴出来看看,或者你断点调试传的是不是4和0
      

  8.   

       跟踪调试下  看看执行的sql语句 是否得到值
     
       或者先取消where条件  看看能查到不?能查到就是没取到值的问题啦。
      
      

  9.   

    debug跟踪执行的语句,然后可以使用sql带的事件查探器查看执行的具体sql语句倒底是什么就行了。
      

  10.   

    楼主。。你先把这段代码放到sql server中查查看,能不能出来啊,跟踪一下数据库不是同时要满足两个条件么,先把parentID条件去掉试下,再根据执行结果看问题出在哪
      

  11.   

    跟踪一下你在程序中执行的sql语句是什么
      

  12.   

    我问题搞好了!是数据库的问题!调试一下,看得到的roleId为几,然后在数据库中查这条数据!
    如果查不到,就是你数据库中roleId的值没有