SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
conn.Open();
SqlCommand comm=new SqlCommand("select * from db_admin where username= '"+tbuser.Text.Trim()+"' and password='"+tbpwd.Text.Trim()+"'",conn);
SqlDataReader sqlread=comm.ExecuteReader();
if(sqlread.Read()==true)
{
Session["username"]=sqlread["tbuser"].ToString();
Session["password"]=sqlread["tbpwd"].ToString();
sqlread.Close();
}
else
{
Response.Write("<script>alert('用户名和密码错误!')</script>");
}
conn.Close();
我写了这段代码,想让Session保存用户信息,然后其它页面引用!
我填写后提交,结果不行
1.大家说这种方法对吗???该怎么改??
2.顺便多提供一些指点!给一些这方面的资料;
conn.Open();
SqlCommand comm=new SqlCommand("select * from db_admin where username= '"+tbuser.Text.Trim()+"' and password='"+tbpwd.Text.Trim()+"'",conn);
SqlDataReader sqlread=comm.ExecuteReader();
if(sqlread.Read()==true)
{
Session["username"]=sqlread["tbuser"].ToString();
Session["password"]=sqlread["tbpwd"].ToString();
sqlread.Close();
}
else
{
Response.Write("<script>alert('用户名和密码错误!')</script>");
}
conn.Close();
我写了这段代码,想让Session保存用户信息,然后其它页面引用!
我填写后提交,结果不行
1.大家说这种方法对吗???该怎么改??
2.顺便多提供一些指点!给一些这方面的资料;
提示:
Session["username"]=sqlread["tbuser"].ToString();
有错!
大家看看错在哪??
if(sqlread.Read()==true)
你Read()之后,第一行的记录已经读取过了,然后现在的语句,读取的是第2行的语句,它是个null值,然后,你又执行下面这一句
Session["username"]=sqlread["tbuser"].ToString();
当把NULL值进行转换时,出错.
你改用datatable,就不会出现这种问题.
并且如果上述错误,你将后面的.ToString()去掉,应该也不会出现问题.
{
保存你要的session就可以了
}
不会出错
你看看Session["username"]=sqlread["tbuser"].ToString();
中的“tbuser”是否和数据库中的字段名一致
如果我用的用户名是aaa'-- 这样会之间登录不用验证密码
用参数安全性比较好
if(index>0)
{
Session["username"]=tbuser.Text.Trim();
Session["password"]=tbpwd.Text.Trim();
sqlread.Close();
}
else
{
Response.Write("<script>alert('用户名和密码错误!')</script>");
}
conn.Close();