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

SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["project_systemCon... 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”这个值。有知道的麻烦告诉我下,谢谢 急求解!!!!!!!!
展开
 我来答
亓昂熙5V
2009-05-28 · TA获得超过231个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:0
展开全部
这个问题很简单啊, 你不能保证你Session["UserId"].ToString()+ 里面一定有值,(假如是""。那就读取不到数据的.).

所以在使用SqlDataReader 读取数据的时候要加如下的判断.
while(dr.read())
{
string staff_name = reader["staff_name"].ToString();
行 25: this.TextBox3.Text= Session["UserId"].ToString();
}
必要情况下要加异常处理。 些程序什么情况都要考虑。 这样你的程序才能安全
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式