我刚学.net,程序看不懂,请大虾帮帮忙!!错误提示: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
代码如下:
private void Login_Click(object sender, System.EventArgs e)
{
{
conn.Open(); 
String sql = "select UserName,[Password],FullName,Degree from [User] where UserName='"+ UserName.Text +"'"; 
OleDbCommand cmd = new OleDbCommand(sql,conn); 
OleDbDataReader reader = cmd.ExecuteReader();
if(reader.Read())
{
if((string)reader["password"]!=Password.Text)
{
Response.Write("你输入的密码有误");
return;
}
}
else
{
Response.Write("无效的用户名");
return;
}
Session["UserName"]=reader["UserName"].ToString();
Session["FullName"]=reader["FullName"].ToString();
Session["Degree"]=reader["Degree"].ToString();
Session["Message"]=Session["UserName"].ToString()+"欢迎您!";
switch(reader["Degree"].ToString())
{
case"发布者":
Response.Redirect("fbzmain.aspx");
break;
case"求职者":
Response.Redirect("qzzmain.aspx");
break;
}
}
}

解决方案 »

  1.   

    OleDbCommand cmd = new OleDbCommand(sql,conn); 
    连接字符串是什么?
      

  2.   


    //帮LZ整理一下,照LZ的思路
    //有问题的话,设几个断点跟踪调试,看看哪些值有问题或哪里抛出了异常
    private void Login_Click(object sender, System.EventArgs e) 

      string tempUserName = null;
      string tempFullName = null;
      string tempDegree =  null; 
      string tempMessage = "欢迎您!";   conn.Open(); //确保连接没有错误,可用查询分析器测试,并且记得用好后关闭它
      String sql = 
      "select UserName,[Password],FullName,Degree from [User] where UserName='"+UserName.Text +"'"; 
      OleDbCommand cmd = new OleDbCommand(sql,conn); 
      OleDbDataReader reader = cmd.ExecuteReader(); 
      if(reader.Read()) 
      { 
        tempUserName = reader["UserName"].ToString(); 
        string pass = reader["password"].ToString();
        tempFullName = reader["FullName"].ToString(); 
        tempDegree =  reader["Degree"].ToString(); 
        if(pass !=Password.Text) 
        { 
          reader.Close();                  //记得关闭,最好用Try,Catch,Finally,或用using块
          if(conn != null) conn.Close();   //记得关闭
          Response.Write("你输入的密码有误"); 
          return; 
        } 
      } 
      else 
      { 
        reader.Close();                  //记得关闭,最好用Try,Catch,Finally,或用using块
        if(conn != null) conn.Close();   //记得关闭
        Response.Write("无效的用户名"); 
        return; 
      }   Session["UserName"] = tempUserName ; //没有必要用这么多Session,目前状况一个足矣
      Session["FullName"] = tempFullName;
      Session["Degree"] = tempDegree ;
      Session["Message"] = tempUserName + tempMessage;
      switch(tempDegree)
      { 
        case"发布者": 
          Response.Redirect("fbzmain.aspx"); 
          break; 
        case"求职者": 
          Response.Redirect("qzzmain.aspx"); 
          break; 
      }