C# C登录表单错误

C# C登录表单错误,c#,login,C#,Login,我一直在寻找早上最好的时间,希望找到一种方法,为我为工作而编写的程序获取一个简单的登录表单 我需要这些东西: 1:用户登录表单 2:验证表单上输入的用户名和密码 3:保护密码字符串,使其不能作为纯文本读取。 4:使其成为管理员用户可以将其他用户添加到数据库中 我甚至不能让登录表单正常工作,更不用说其他的东西了。当我点击登录按钮时,我在网上看到的所有东西都会抛出一个错误 错误代码: 发生了SqlException 在System.Data.dll中引发异常System.Data.SqlClient

我一直在寻找早上最好的时间,希望找到一种方法,为我为工作而编写的程序获取一个简单的登录表单

我需要这些东西:

1:用户登录表单 2:验证表单上输入的用户名和密码 3:保护密码字符串,使其不能作为纯文本读取。 4:使其成为管理员用户可以将其他用户添加到数据库中

我甚至不能让登录表单正常工作,更不用说其他的东西了。当我点击登录按钮时,我在网上看到的所有东西都会抛出一个错误

错误代码: 发生了SqlException 在System.Data.dll中引发异常System.Data.SqlClient.SqlException

其他信息: 无效的对象名称“Login”

我已经找到了它的位置,我不明白它在做什么或引用什么,下面是btnLogin_单击的代码

private void btnLogin_Click(object sender, EventArgs e)
    {
        {
            string USERNAME, PASSWORD;
            SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\turner.m\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30";
            con.Open();
            USERNAME = txtUserName.Text;
            PASSWORD = txtPassword.Text;
            SqlCommand cmd = new SqlCommand("select USERNAME,PASSWORD from Login where USERNAME='" + txtUserName.Text + "'and PASSWORD='" + txtPassword.Text + "'", con);
            //cmd.ExecuteNonQuery();
            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                if (txtUserName.Text == dr[0].ToString() && txtPassword.Text == dr[1].ToString())
                {
                    txtUserName.Text = "";
                    txtPassword.Text = "";
                    this.Hide();

                }
                else
                {
                    MessageBox.Show("invalid userid or password");
                }
                dr.Close();
                con.Close();
            }
        }
    }
然后运行查询:

select USERNAME,PASSWORD 
from Login 
where USERNAME= 'foo'
and PASSWORD= 'bar'

您的SQL可能不会执行,因为您的TableName无效。

该数据库中是否有名为Login的表?错误消息告诉您没有名为Login的SQL表。另外,请将查询更改为使用参数,您实际上不需要SqlDataReader,当您可以使用datatable返回数据时,如果登录表中的用户和密码匹配,则无需创建While循环等。。有很多更有效的方法可以做到这一点。。另外,请阅读如何在app.config ExecuteNonQuery中存储连接字符串,即使您已将其注释掉,也是为了执行插入、更新或删除非选择语句。如果使用得当,google是一个非常好的资源。我已将登录名更改为数据库中的表。在关键字“Table”附近获取不正确的语法。