KSDDAL.ls.service.KsdUserInfoService.GetUserByUserId(String userid) 位置 E:\源码卢\back1\KSDDAL\ls\service\KsdUserInfoService.cs:行号 177
不知道是哪一行
应该是对应的dr没有这个字段。

解决方案 »

  1.   

    Exception information: 
        Exception type: IndexOutOfRangeException 
        Exception message: User_Id 
    索引超界
    在 KSDDAL.ls.service.KsdUserInfoService.GetUserByUserId(String userid) 位置 E:\源码卢\back1\KSDDAL\ls\service\KsdUserInfoService.cs:行号 177
    177行,断点看看这里,把这错误的贴上来
      

  2.   

    if (dr.Read())
                        {
                            userinfo = new Ksd_User_Info();
                            if (!(dr["User_Id"] is DBNull))
                                userinfo.User_Id = Convert.ToString(dr["User_Id"]);
    错误行就在这里   if (!(dr["User_Id"] is DBNull))
                                userinfo.User_Id = Convert.ToString(dr["User_Id"]);本机运行没错   只是放到网站上面就有问题了,但是把页面重新刷新又没了
      

  3.   

    你catch里面也应该把连接关闭,不然下次打开还是错误!
      

  4.   

    之前的登陆没有正常关闭数据库的链接。估计所谓正常的“登陆”也抛出异常了吧,建议加catch的断点试试这个假设。
      

  5.   

    你修改一下try...catch段try{
    }
    catch{
    }
    finally{
        connection.Close()
    }
    最好在finally里面完成关闭。再有你检查一下你本机数据,是否和服务器一样。
      

  6.   

    是不是表中没有该列另外,最后在finally中关闭连接,保证异常的时候也会关闭连接!
      

  7.   

     if (!dr.IsDBNull(0)) <<=这句话有问题 把这一层的  if (!dr.IsDBNull(0))  去掉
    只要下面这个 if (dr.Read()) 就可以了
                      dr.IsDBNull 这个是用来判断有记录时,某一列是否为空值
    所以先Read()
      

  8.   

    dr["User_Id"] dr里头没有User_Id