我正在使用C#编写SQL数据库项目。我正在寻找创建一个登录表单,当有人启动应用程序时会显示该表单。
与数据库建立了连接,但是他们必须在第一个表单中输入正确的用户名和密码才能继续查看其余的内容。
我创建了两个文本框,一个按钮txtusername和txtpassword以及一个按钮登录。
这是我的SQL命令:
SqlCommand command = new SqlCommand("SELECT * FROM tblUsers WHERE Username ='" + txtUsername + "' AND Password = '" + txtPassword + "'", Program.cs);
我正在寻找一种在标签中显示的方法,如果sql命令产生结果意味着用户名和密码存储在用户表中,那么它返回true或者其他东西。如果有更有效或更有效的方法,请告诉我:)。
答案 0 :(得分:1)
你应该从不通过连接字符串来创建命令文本。使用SqlParameter
。那是先把事情放在首位。
在我看来,你没有(或很少)了解数据访问在.net中的工作原理。因此,我建议您阅读有关该主题的一些书籍,例如,Microsoft的“使用.NET Framework 4访问数据”。
答案 1 :(得分:0)
此代码是项目中的漏洞 See this for details
答案 2 :(得分:0)
登录页面的强文本* 代码 B'/ EM> 强>
tn_click() //button click event
{
Sqlconnection con=new
sqlconnection(Strcon);
String sqlquery="select usrname,password from loginpage where username='textname.text' and password='textpassword.text'";
Sqlcommand sqlcom=new Sqlcommand(Sqlquery,con);
con.open();
Sqldatareader dr;
dr=sqlcomm.executereader(commandbehavior close connection);
if(dr.read())
{
session["un"]=dr["username"].Tostring();
session["pwd"]=dr["userpassword"].Tostring();
if(dr["userpassword"].Tostring()!=null);
respone.redirect("userdetail.aspx");
}
else
{
respone.redirect("login.aspx");
}
else
{
lblmsg.text="invalid user";
}
}