C#访问登录表单,带有保存ID

时间:2017-05-24 08:17:29

标签: c# database ms-access login

我需要创建具有登录用户的保存ID的登录表单。我已经在登录表单了。您能帮忙告诉我,根据输入的用户名和密码,我应该在哪里更改代码以保存我的ID?

private void button1_Click(object sender, EventArgs e)
{
    OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Project\Database.mdb");
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter("Select Count(*) From Datatable where Username ='" + textBox1.Text + "' and Password ='" + textBox2.Text + "'", con);
    DataTable dt = new DataTable();
    dataAdapter.Fill(dt);
    if (dt.Rows[0][0].ToString() == "1")
    {
        this.Hide();
        Form1 ss = new Form1();
        ss.Show();
    }
    else
    {
        MessageBox.Show("Incorrect name or password");
    }
}

2 个答案:

答案 0 :(得分:0)

在C#中没有全局变量这样的东西。 如果您想在登录时存储ID,我建议您创建如下内容:

public static class Globals
{
    public static String ID; // Modifiable in Code
}

因此,您可以在代码中的任何位置使用名为ID的此属性,例如:

 if (dt.Rows[0][0].ToString() == "1")
 {
        Globals.ID = "YOUR ID";

        this.Hide();
        Form1 ss = new Form1();
        ss.Show();
 }

一旦将此Globals.ID设置为您的值,您的代码中的任何位置都可以使用(假设您正在使用相同的命名空间)。

答案 1 :(得分:0)

是的,C#中没有全局变量。 而Roxy'Pro的答案是完美的,但为了一点安全性我会推荐

 //this will create a variable that belongs to no class
 private static string id;

 //This will create a get property for the variable "id"
 public static string ID{get{return id;}}

 if (dt.Rows[0][0].ToString() == "1")
 {
        id = "YOUR ID";

        this.Hide();
        Form1 ss = new Form1();
        ss.Show();
 }

一旦将此id设置为您的值,您就可以通过使用“className.PropertyName”创建的属性在任何位置检索它。这将确保您设置'id',您需要在代码中的任何位置意外更改值。