2015-03-03 96 views
0

我有一個登錄表單(名爲LoginForm的),不過用戶需要他們的用戶名和密碼。我如何獲得該用戶名和密碼來自的行中的所有數據,並將其顯示在另一個窗體(名爲Form1)上的文本框上?C#檢索數據庫,並顯示數據的文本框

我想顯示在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(); 

}

出現Form在成功登錄後,細節從檢索到數據庫應該出現在加載 這裏是我的Form1(我不知道該把什麼放在這裏)

private void Form1_Load(object sender, EventArgs e) 
{ 

} 
+0

要創建的文本框列表? – Yehia 2015-03-03 12:29:07

回答

0

其中一個方法是在Form1類中創建夫婦的屬性,然後初始化之後設置的值。

   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(); 
0

你必須通過在構造函數中的「Form1的」類通過「博士」(將其複製到一個成員??通過??參考)。然後,您可以將「Form1」中的各個字段設置爲「dr」中的值。

+0

如果他們解決了您的問題,您可以將其中一個標記爲正確答案嗎?謝謝,瑪爾 – Malekai 2015-03-16 16:07:43

0

兩個選項涌現在腦海裏:

1),你可以添加公共屬性到窗體Form1以便您可以通過傳遞值,如: Form1.MyCustomProperty =「一些價值」

2)爲Form1創建一個新的構造函數,您可以將值傳遞給: Form1 y = new Form1(「Some Value」);

在一個單獨的說明,你可能要檢索的數據並啓動表單之前關閉DataReader,否則可能會保持打開無限,消費它並不需要的資源。

0

您也可以使用靜態類。
創建一個靜態類可以說,「用戶信息」,並定義在這個類存在於數據行的所有字段。
設置此類中的所有字段數據,然後您可以在應用程序中的任何位置使用此數據。

相關問題