.net模式中,怎样用linq to sql来验证用户输入的用户名密码是否和数据库中数据一致?求大神指点啊!急!

2025-04-30 05:27:06
推荐回答(2个)
回答1:

DataBase DB = new DataBase();

if (!DB.databasecon())
{
MessageBox.Show("database error!");
return;
}
string UserName = textBox1.Text;
string UserType = comboBox1.Text;
string UserPwd = textBox2.Text;
if (UserName.Equals("")) //如果相应的文本框的值为空,且不能执行
{
MessageBox.Show("请输入用户名!");
return;
}
if (UserPwd.Equals(""))
{
MessageBox.Show("请输入密码!");
return;
}
string sqlPwd;
string sqlUserType;
string sql = "select * from [UserManage] where UserName=@UserName";
SqlCommand cmd = DB.getconn().CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.Add(new SqlParameter("@UserName",UserName));
SqlDataReader reader= cmd.ExecuteReader();
if (!reader.Read()) //判断相应的文本框的值是否正确,不正确则不执行
{
MessageBox.Show("用户名错误!!");
return;
}
else
{
sqlPwd = reader.GetString(6); //密码在数据库的第8列
sqlUserType = reader.GetString(7); //密码在数据库的第9列
if (!sqlPwd.Equals(UserPwd))
{
MessageBox.Show("密码错误!!!");
return;
}
if (!sqlUserType.Equals(UserType))
{
MessageBox.Show("用户类型错误!!!");
return;
}
}
login = true;
this.Visible = false;
Index index = new Index();
index.Show();

//if (comboBox1.Text.Equals("普通用户") )
//{
// Login.

//}

}

回答2:

前台取出的数据,再和linq to sql中取出的的后台数据做比较
例如:
后台代码类似:

string fuserid=Request.Form["userID"].ToString();
var luserid= from A in Table
where A.userID==userid
select A.userID;
if(fuserid!=luserid)
{
//用户不存在。。。todo:一些处理

}
//接下来 todo:密码验证

前台代码中用JQuery的ajax就可以了