针对SQL DB的C#Windows窗体应用程序文本框验证

时间:2011-12-06 10:38:01

标签: c# visual-studio-2010

我是C#的新手并拥有SQL背景,所以如果这是一个非常愚蠢的查询,我会道歉,但我现在已经拖网谷歌约2个小时,但找不到我需要的东西。如果有人知道他们可以指向我的文章,那就太好了。

我有一个简单的Windows窗体应用程序,我正在设置一个登录框,以便用户必须输入他们的用户ID才能继续。

我有一个带有下表的SQL Server数据库(SQL 2005):

用户 UserID(int); userName nvarchar(50)

我正在使用Visual Studio 2010

我遇到的问题是如何检查他们的用户ID是否存在于我的SQL表中(称为用户...)我不会在这里放任何代码,因为它已经从头开始重写了很多次干净石板可能是最好的!

理想情况下,我希望用户输入他们的用户ID,然后点击“登录”。当他们这样做时,如果他们的userID在DB表中无效,那么我需要它来给出错误msgBox;如果它是有效的,那么它应该记录它们,将它们的userID和userName(存储在DB表中)传递给一个变量,我可以在应用程序的其他地方使用它来填充字段。

我希望这是有道理的,而且我确信我错过了那些能够解释这一切的完美文章 - 希望你们中的一个人能指出我正确的方向!

谢谢

3 个答案:

答案 0 :(得分:1)

您应该使用用户输入的用户ID进行简单的SQL查询,例如
从userID = value的用户中选择UserID。 executeNonQuery()将返回匹配数。如果返回值== 1,则表示该用户标识存在于数据库中。如果返回值与1不同,则表示userid不存在或已多次注册。所以,如果是1然后你可以调用另一个表单来制作不同的东西,否则你调用anoter表单或输出带有错误消息的消息框

答案 1 :(得分:1)

    /*table code
     * create table login
           (
                id varchar(25),
                    pass varchar(25)
            )   
     * 
     * 
     * 
     * 
     */

    string Connectstring = @"Data Source=DELL-PC;Initial Catalog=stud;Integrated Security=True";
    public Form1()
    {
        InitializeComponent();
    }



    private void button1_Click(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection(Connectstring);
        cn.Open();


        SqlCommand cmd = new SqlCommand("select * from log where id=@a and pass=@b", cn);
        cmd.Parameters.AddWithValue("@a", textBox1.Text.ToString().ToUpper());
        cmd.Parameters.AddWithValue("@b", textBox2.Text);

        SqlDataReader dr = cmd.ExecuteReader();


        if ((dr.Read() == true))
        {
            MessageBox.Show("The user is valid!");
            Form2 mainForm = new Form2();
            mainForm.Show();
            this.Hide();
        }
        else
        {
            MessageBox.Show("Invalid username or password!");
        }


    }

答案 2 :(得分:0)

声明您的数据库的连接字符串

string connString = @"Data Source=.\SQLEXPRESS;Initial Catalog=YourDatabase;Integrated Security=True";

之后您可以使用下面的验证方法

private bool ValidateUserById(string connString, int id)
{
    using (var conn = new SqlConnection(connString))
    {
        conn.Open();

        var sqlString = string.Format("Select * From Users where Id = {0}", id);
        using (var cmd = new SqlCommand(sqlString, conn))
        {
                return cmd.ExecuteScalar() != null;
        }
    }
}

然后点击按钮您可以检查用户

if (ValidateUserById(connString, Convert.ToInt32(textBox1.Text)))
{
    //..
}
else
{
    //..
}