VS2010 连接数据库进行用户验证和注..
时间:2010-09-29 来源:shylx123
最简单的用户登录和注册:
1: 添加用户命令按钮代码:
protected void btnRegist_Click(object sender, EventArgs e)
{
string username = txtName.Text; //将用户名输入框的内容赋值给变量
string password = txtPassword.Text; //将密码输入框的内容赋值给变量
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|UserMgr.mdf;Integrated Security=True;User Instance=True");
//初始化一个数据库连接,并连接到指定的数据库(修改 UserMgr.mdf )
conn.Open(); // 打开数据库
SqlCommand cmd = conn.CreateCommand(); //创建一个数据库命令行
cmd.CommandText = "insert into users(UserName,Password) values(@un,@pw)"; //数据库命令的内容(@un,@pw是点位符,将会在下面的语句中赋值)
cmd.Parameters.AddWithValue("un", username); // 将username 赋值给命令行的 "un”
cmd.Parameters.AddWithValue("pw", password); // 将Password 赋值给命令行的 "pw”
cmd.ExecuteNonQuery(); // 执行数据库命令
lblMessage.Text = "注册成功"; // 提示注册成功
txtName.Text = ""; // 清空用户输入框
txtPassword.Text = ""; // 清空密码输入框
cmd.Dispose(); // 丢弃命令
conn.Dispose(); // 丢弃连接
}
2: 登录命令按钮代码:
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtName.Text; // 将用户输入框的内容赋值给变量
string password = txtPassword.Text; // 将密码输入框的内容赋值给变量
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|UserMgr.mdf;Integrated Security=True;User Instance=True");
//初始化一个数据库连接,并连接到指定的数据库(修改 UserMgr.mdf )
conn.Open(); // 打开数据库
SqlCommand cmd = conn.CreateCommand(); //创建一个数据库命令行
cmd.CommandText = "select * from users where UserName=@UN"; //数据库命令的内容(@un是点位符,将会在下面的语句中赋值)
cmd.Parameters.AddWithValue("UN",username); // 将username 赋值给命令行的 "un”
SqlDataReader reader = cmd.ExecuteReader(); // 将数据库命令执行后的结果赋值给 reader
if (reader.Read() == false) // reader 中的内容没有一项是符合要求的
{
lblMessage.Text = "用户不存在"; // 提示用户不存在
return;
}
string realpassword = reader.GetString(1); //当上一句中,找到了正确的用户名,定义 realpassword为相应的用户贮存在服务器上的密码
if (password == realpassword) //判断用户输入的密码是否服务器上密码相同
{
lblMessage.Text = "登录成功"; // 如果相等, 提示登录成功
txtPassword.Text = ""; // 清空密码输入框
}
else
{
lblMessage.Text = "登录失败"; //如果不相等,提示登录失败
}
cmd.Dispose();
conn.Dispose();
}
重点说明:
reader.Read() == false
从数据库里检索出来的数据存储在reader里, reader.Read()方法是用来遍历reader里的所有的值,如果找到合适的值,那他的值就等于 false.