异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。

http://www.baidu.com/s?word=System.InvalidOperationException%3A+%E5%9C%A8%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E6%95%B0%E6%8D%AE%E6%97%B6%E8%BF%9B%E8%A1%8C%E6%97%A0%E6%95%88%E7%9A%84%E8%AF%BB%E5%8F%96%E5%B0%9D%E8%AF%95%E3%80%82&tn=sitehao123&ie=utf-8
 
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["project_systemConnectionString"]);
        SqlCommand cmd = new SqlCommand("select * from user_loading where username='" + Session["UserId"].ToString()+ "'",con);

        cmd.Connection.Open();
        SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  
       string staff_name = reader["staff_name"].ToString();

错误信息:
在没有任何数据时进行无效的读取尝试。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。

源错误: 

行 22:         SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
行 23:   
行 24:        string staff_name = reader["staff_name"].ToString();
行 25:        this.TextBox3.Text= Session["UserId"].ToString();
行 26:        Response.Write("<script>alert('reader值为:'" + staff_name + ")</script>");

源文件: d:\My Documents\WebSites\WebSite_5_5\Client\staff_info_update.aspx.cs    行: 24 

我是想根据Session里的用户名test(用户登录表如:{test,test,普通用户,孙X})然后获取这个“孙X”这个值。有知道的麻烦告诉我下,谢谢 急求解!!!!!!!!
 
 
这个问题很简单啊, 你不能保证你Session["UserId"].ToString()+ 里面一定有值,(假如是""。那就读取不到数据的.).

所以在使用SqlDataReader  读取数据的时候要加如下的判断.
 while(dr.read()())
     {
 string staff_name = read()er["staff_name"].ToString();
行 25:        this.TextBox3.Text= Session["UserId"].ToString();
}
必要情况下要加异常处理。 些程序什么情况都要考虑。 这样你的程序才能安全

 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值