关于数据库的问题,请给位高手指点,谢谢
我先解释一下我要干什么:这里要实现学生登录的功能,如果不是第一次登录的话,就判断输入的密码是否正确即可。如果是第一次进入系统点击登录的话,输入学号,并把第一次输入的密码作为以后登录的密码,然后把学号和密码插入到学生库中。以下是我的代码:protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
{
bool Authenticated = false;
Authenticated = AuthenticationMethod(Login.UserName, Login.Password);
e.Authenticated = Authenticated;
if (Authenticated == true)
{
Response.Redirect("Default.aspx");
}
}
private bool AuthenticationMethod(string UserName,string Password)
{
bool boolReturnValue = false;
string connstr = "server=(local);Initial Catalog=test;Integrated Security=SSPI";
SqlConnection conn=new SqlConnection(connstr);
conn.Open();
string sqlstr = "select * from student";
SqlCommand cmd = new SqlCommand(sqlstr,conn);
SqlDataReader Dr;
Dr = cmd.ExecuteReader();
while (Dr.Read())
{
if (UserName == Dr["sid"].ToString()) //该学号已存在,判断输入密码是否正确
{
if (Password == Dr["spwd"].ToString())
{
boolReturnValue = true;
}
Dr.Close();
return boolReturnValue;
}
else 不存在学号的话说明是第一次登录,把学号密码存库
{
string inSql = "Insert student(sid,spwd) values ('" + UserName + "','" + Password + "')";
SqlCommand command = new SqlCommand(inSql,conn);
command.ExecuteNonQuery();
conn.Close();
boolReturnValue = true;
return boolReturnValue;
}
}
return boolReturnValue;
}
红色部分的代码这是其中一个版本,但是我改过的版本都不正确,老是报错,类似下面的错误
已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
请给位高手指点帮助解决一下,非常感谢。