小问题一个,大虾别笑话。我是新手,多多见谅。就是一个登陆界面,由登陆按钮触发的事件,我的代码是: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字段里面的内容,我估计调用方法不对,但是又不知道到底应该怎么取出来,看了看书也搜了搜网页,没有我想要的,在此耽误大家的时间了,先谢谢~~

解决方案 »

  1.   

    修改这句
    string mylogin="Select * from Users where UserName = '"+UserName.Text+"'";
      

  2.   

    还是不行 显示“/TestNews”应用程序中的服务器错误。
    --------------------------------------------------------------------------------在没有任何数据时进行无效的读取尝试。 
    说明: 执行当前 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那行是红的
      

  3.   

    是因为 recm["UserName"] 为空
    所以你recm["UserName"].ToString()就会出错