小问题一个,大虾别笑话。我是新手,多多见谅。就是一个登陆界面,由登陆按钮触发的事件,我的代码是:private void LoginBtn_Click(object sender, System.EventArgs e) //用户登录函数
{//添加用户登录后的实现代码
string mylogin="Select * from Users where UserName = 'UserName.Text'";
SqlCommand myCommand = new SqlCommand(mylogin,Conn);
SqlDataReader recm = myCommand.ExecuteReader();
if(UserName.Text.Trim()==recm["UserName"].ToString()&&Password.Text.Trim()==recm["Password"].ToString()){Session["UserID"]=UserName.ToString();}
else{Response.Write ("你输入的用户名称和密码不正确,请重新输入!");}
}问题出在If的判断条件==的后面,我的意思是想取出recm得到的记录里面的username字段里面的内容,我估计调用方法不对,但是又不知道到底应该怎么取出来,看了看书也搜了搜网页,没有我想要的,在此耽误大家的时间了,先谢谢~~
{//添加用户登录后的实现代码
string mylogin="Select * from Users where UserName = 'UserName.Text'";
SqlCommand myCommand = new SqlCommand(mylogin,Conn);
SqlDataReader recm = myCommand.ExecuteReader();
if(UserName.Text.Trim()==recm["UserName"].ToString()&&Password.Text.Trim()==recm["Password"].ToString()){Session["UserID"]=UserName.ToString();}
else{Response.Write ("你输入的用户名称和密码不正确,请重新输入!");}
}问题出在If的判断条件==的后面,我的意思是想取出recm得到的记录里面的username字段里面的内容,我估计调用方法不对,但是又不知道到底应该怎么取出来,看了看书也搜了搜网页,没有我想要的,在此耽误大家的时间了,先谢谢~~
string mylogin="Select * from Users where UserName = '"+UserName.Text+"'";
--------------------------------------------------------------------------------在没有任何数据时进行无效的读取尝试。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。源错误:
行 57: SqlCommand myCommand = new SqlCommand(mylogin,Conn);
行 58: SqlDataReader recm = myCommand.ExecuteReader();
行 59: if(UserName.Text.Trim()==recm["UserName"].ToString()&&Password.Text.Trim()==recm["Password"].ToString()){Session["UserID"]=UserName.ToString();}
行 60: else{Response.Write ("你输入的用户名称和密码不正确,请重新输入!");}
行 61:
其中 行59那行是红的
所以你recm["UserName"].ToString()就会出错