C# - 来自SQL数据库的多个用户登录表单

时间:2016-08-08 14:57:46

标签: c# sql-server-ce

所以,我有一个登录表单,用户必须登录才能进入主表单。 我有一个数据库,其中创建了一个用于存储用户名和密码的表,用于登录应用程序。

如果用户键入正确的用户名和密码并单击登录,则应将他/她带到主窗体。我知道该怎么做,但是如何从SQL数据库中获取用户名和密码并检查它们是否存在,如果存在,是正确的密码用户名,反之亦然?

就像我说的,我创建了一个SQL数据库来存储用户名和密码。 然后,我将用户名和密码保存为" admin",仅用于测试目的。

我尝试了以下代码,但即使输入了正确的用户名和密码,也不能让我登录。

string username;
string password;

private void btnLogin_Click(object sender, EventArgs e)
{
    try
    {
        SqlCeConnection con = new SqlCeConnection(@"connectionString");
        SqlCeCommand com = new SqlCeCommand("SELECT username, password FROM UsersPass WHERE username = '" + txtUsername.Text + "' AND password = '" + txtPassword.Text + "'", con);
        con.Open();

    if (con.State == ConnectionState.Open)
    {
        SqlCeDataReader dtr = com.ExecuteReader();

        while (dtr.Read())
        {
            username = dtr["username"].ToString();
            password = dtr["password"].ToString();
            if (username == txtUsername.Text && password == txtPassword.Text)
            {
                Mainform frm = new Mainform();
                frm.Show();
                this.Hide();     
            }
            else
            {
                MessageBox.Show("Invalid credentials!\nPlease enter a valid username and password to continue.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
    }
    catch (Exception)
    {
        MessageBox.Show("Erorr", "Error");
    }
}

请原谅我,如果我错过了一些完全明显的东西,我对C#来说还是比较新的。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您说您收到错误消息。首先给自己提供更多相关信息。在

中放置一个断点
catch (Exception)
{
    MessageBox.Show("Erorr", "Error");
}

因此您可以查看有关异常的一些详细信息或将其更改为

catch (Exception ex)
{
    MessageBox.Show("Erorr", ex.Message + Environment.NewLine + ex.StackTrace);
}

这将为您提供有关您的应用程序失败的确切原因的详细信息,并为您提供让您按需工作的途径。

我怀疑你的连接字符串不正确。

编辑:此特定问题是由用于代替标准版引用的sql server精简版引用引起的。见评论。

答案 1 :(得分:0)

只是另一种方式:

           private void btnLogin_Click(object sender, EventArgs e)
                    {
                        string currentUserID=string.Empty;
                        SqlConnection connection= new SqlConnection(connectionString);
                        connection.Open();
                        SqlCommand command = new SqlCommand();
                        command.CommandText = "SELECT UserID From UserPass WHERE username =@username AND password =@password";
                        command.Parameters.AddWithValue("@username", txtUsername.Text);
                        command.Parameters.AddWithValue("@password", txtPassword.Text);
                        command.Connection = connection;
                        object obj=command.ExecuteScalar();
                        if (obj!=null)
                        {
                            currentUserID= obj.ToString();
                            connection.Close();
                            Mainform frm = new Mainform();
                            frm.Show();
                            this.Hide();         
                        }
                        else
                        {
                        connection.Close();
                        MessageBox.Show("Invalid credentials!\nPlease enter a valid username and password to continue.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                    }
相关问题