C#从数据库中检索数据并在文本字段中显示

时间:2015-03-03 12:25:55

标签: c#

我有一个登录表单(名为LoginForm),用户需要用户名和密码。如何获取该用户名和密码来自该行的所有数据并将其显示在我创建的另一个表单(名为Form1)上的文本框中?

我想在Form1_Load

上显示检索到的数据

来自LoginForm的代码的一部分

static string conString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Thalia\Documents\Visual Studio 2010\Projects\EnrollmentSystem\EnrollmentSystem\Database1.mdf;Integrated Security=True;User Instance =True";
SqlConnection myCon = new SqlConnection(conString);

private void btnLogin_Click(object sender, EventArgs e)
{
    SqlDataReader dr;
    // DataTable dt = new DataTable();
    SqlCommand readCmd = new SqlCommand("SELECT * FROM mytable WHERE Username = @u and Password = @p", myCon);
    readCmd.Parameters.AddWithValue("@u", txtUsername.Text);
    readCmd.Parameters.AddWithValue("@p", txtPassword.Text);

    myCon.Open();
    dr = readCmd.ExecuteReader();
    if (dr.HasRows)
    {
        Form1 y = new Form1();
        y.Show();    
    }
    else
    {
        lblinvalid.Text = "Error.";
        // myCon.Close();
    }
    myCon.Close();

}

成功登录后会出现Form1,从数据库中检索的详细信息应在加载时显示 这是我的Form1(我不知道该放什么)

private void Form1_Load(object sender, EventArgs e)
{

}

4 个答案:

答案 0 :(得分:0)

其中一种方法是在Form 1类中创建几个属性,然后在安装后设置该值。

              public class Form1 {
                  public string InformationToShow;
                  private void Form1_Load(object sender, EventArgs e)
                   {
                            //use the property here
                   }
              } 

               Form1 y = new Form1();
               y.InformationToShow = "I am here";
               y.Show();

答案 1 :(得分:0)

你必须通过" dr"通过" Form1"构造函数中的类(将其复制到成员中??通过??传递引用)。然后你可以在" Form1"中设置各个字段。来自" dr"。

的价值观

答案 2 :(得分:0)

有两种选择:

1)您可以将公共属性添加到表单Form1,以便您可以传递值,例如:     Form1.MyCustomProperty =“Some Value”

2)为Form1创建一个新的构造函数,您可以将值传递给:     Form1 y = new Form1(“Some Value”);

另外,您可能希望在启动表单之前检索数据并关闭DataReader,否则它可能会无限期地保持打开状态,消耗它不需要的资源。

答案 3 :(得分:0)

您也可以使用静态类 创建一个静态类,让我们说“userInfo”,并定义此类中存在于数据行中的所有字段 设置此类中的所有字段数据,然后您可以在应用程序的任何位置使用此数据。