一个简单登陆框的变化+更新了如何连接sql数据库,获得数据集,比较两种方法(数据集和读数据)
public static Boolean LoginCheck(string UserNameStr, string PassWordStr, string power)
{
string SqlString = "select UserNameStr,PassWordStr from school_data where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
//OleDbConnection OleDbConn = new OleDbConnection(ConfigurationManager.AppSettings["ConnectionString"]);
OleDbConnection OleDbConn = new OleDbConnection(cnn);//采用相对路径后不要上一句
OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
OleDbConn.Open();
OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
Boolean FindUser = false;
while (OleDbReader.Read())
{
FindUser = true;
}
if (FindUser)
{
return true;
}
else
{
return false;
}
}
甚至一些连power也没有定义,就更加简单了,一般我们定义power是表示该用户的权限的。
考虑到数据库连接一般确定,当然实际是可以很轻易改变的,我们这里谈不变的情况,则数据库中有验证用户表data,在类中定义好函数
public static Boolean LoginCheck_fromdb(string UserNameStr, string PassWordStr, string power, string table_name)//带指定表名的查询权限的登陆验证
{
string SqlString = "select UserNameStr,PassWordStr from " + table_name + " where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
OleDbConnection OleDbConn = new OleDbConnection(cnn);
OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
OleDbConn.Open();
OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
Boolean FindUser = false;
while (OleDbReader.Read())
{
FindUser = true;
}
if (FindUser)
{
return true;
}
else
{
return false;
}
}
我们在参数项中定义多一个表名,则就轻松实现了在库中的验证了,例子应用。
if (data.LoginCheck_fromdb(Login1.UserName, Login1.Password, "0", "data") == true && yanzheng_ma ==TextBox1 .Text )//加上了验证码,防止多次尝试
{
Session["UserSession"] = this.Login1.UserName;//利用Session传递变量值
Response.Redirect("ok.aspx");
}
else
{
Response.Write("<script>alert('用户名或密码错误!')</script>");
}
红色涉及验证码中,就需要到本站“随机数中的小小理解”看例子和说明了,也不复杂
在实际研究中,我们还可以类似这样动态改变参数,如power,这样就要看实际需要了。7月看来无写到,就写一篇啦,哈。
如果是sqlserver中,我们建立了数据库hhwtest,建立表userlogin,定义为varchar类型,不要定义为char,name和pwd,则这样登陆验证
看下面web.config配置好先
<appSettings >
<add key="ConnString" value="Server=127.0.0.1;Database=test;uid=123;pwd=123456"/>
</appSettings>
然后,在登陆页面中添加一个控件,登陆控件写上
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
//创建一个SqlConnection对象
string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];//新型写法
SqlConnection Conn = new SqlConnection(cn);
Conn.Open();
string sqlstring = " SELECT username,userpassword FROM users_login ";
//创建一个 DataSet对象
DataSet myDataSet = new DataSet();
SqlDataAdapter cmd = new SqlDataAdapter(sqlstring, Conn);//定义,并实例化
cmd.Fill(myDataSet, "users_login");//获得数据集的方法
string username1 = myDataSet.Tables[0].Rows[0]["name"].ToString();//应用数据集的元素
string userpassword = myDataSet.Tables[0].Rows[0]["pwd"].ToString();
//验证开始,
if ((Login1.UserName.ToString() ==username1) && (Login1.Password.ToString() ==userpassword))
{
myConn.Close();
Response.Redirect("Default2.aspx");
}
else
{
Response.Write("you are wrong");
}
}
在Default2.aspx页面中,
protected void Page_Load(object sender, EventArgs e)
{
if (Session["username"] !=""&&Session ["username"]!=null)
Response.Write("欢迎登陆");
else
Response.Redirect("default.aspx");
}
是不是很简单呢?哈哈,复习也是学习到得。
string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
SqlConnection conn=new SqlConnection (cn );
conn.Open ();
string sql="select * from userlogin where strUserName='"+Login1 .UserName +"' and strPassword='"+Login1 .Password +"'";
SqlCommand cmd = new SqlCommand(sql, conn);//上一cmd是SqlDataAdapter,这里是SqlCommand,不同
SqlDataReader reader = cmd.ExecuteReader(); //用读数据的方法
if (reader.Read())
{
Session["admin"] = reader["strUserName"].ToString();
Session["iLevel"] = reader["iLevel"].ToString();
conn.Close();
Response.Redirect("index.aspx");
}
else
{ msg("错误!");
}