c#数据库登录表单

本文关键字:表单 登录 数据库 | 更新日期: 2023-09-27 18:14:05

我想在Visual Studio 2010(使用Visual c#)上创建一个注册和登录表单。
我已经创建了基于服务的数据库和一个表。我可以在表中插入数据(在注册表单中),但我不知道如何登录用户。

我有一个非常简单的登录表单(只是字段的用户名和密码)和一个"登录"按钮。我真的不知道如何检查密码和用户名(存在于我的数据库中)是否匹配。以下是目前为止的内容:

private void button1_Click(object sender, EventArgs e)  
    {  
        if (textBox1.Text != "" & textBox2.Text != "")  
        {  
            cn.Open();  // cn is the Sqlconnection
            cmd.Parameters.AddWithValue("@Username", textBox1.Text);  // cmd is SqlCommand 
            cmd.Parameters.AddWithValue("@Password", textBox2.Text);  
            if (cmd.CommandText == "SELECT * FROM Table1 WHERE username = @Username AND password = @Password")  
            {  
                MessageBox.Show("Loggen In!");  
                this.Close();  
            }  
            cn.Close();  
        }  
    } 

c#数据库登录表单

您需要执行查询以知道该信息是否存在于数据库

 if (textBox1.Text != "" & textBox2.Text != "")  
   {  
        string queryText = @"SELECT Count(*) FROM Table1 
                             WHERE username = @Username AND password = @Password";
        using(SqlConnection cn = new SqlConnection("your_connection_string"))
        using(SqlCommand cmd = new SqlCommand(queryText, cn))
        {
            cn.Open();  
            cmd.Parameters.AddWithValue("@Username", textBox1.Text); 
            cmd.Parameters.AddWithValue("@Password", textBox2.Text);  
            int result = (int)cmd.ExecuteScalar();
            if (result > 0)  
                MessageBox.Show("Loggen In!");  
            else
                MessageBox.Show("User Not Found!");  
        }
    }  

我也修改了你的代码。

  • 将查询文本更改为只返回具有的用户的计数指定的用户名和帐户,并能够使用ExecuteScalar
  • 在using中包含SqlConnection和SqlCommand的创建语句的末尾处理这些对象操作

我还建议您更改存储密码的方式。
在密码字段中存储一个散列,而不是明确的密码。然后将相同的散列传递给数据库,并将其与数据库字段的内容进行比较。
这样,密码只有您的用户知道,您或任何查看数据库表

的过路人都不会知道。
SqlConnection con = new SqlConnection("connection_string");
SqlCommand cmd = new SqlCommand("select Count(*) from [dbo].[Table] where uname=@uname and password=@password");
cmd.Connection = con;
con.Open();
cmd.Parameters.AddWithValue("@uname", uname.Text);
cmd.Parameters.AddWithValue("@password", password.Text);
int Result=(int)cmd.ExecuteScalar();
if (Result > 0)
 {
Response.Redirect("welcome.aspx");
}
 else
{
Response.Redirect("register.aspx");
 }