2012-02-13 57 views
1

我創建了一個MySQL表。我可以插入數據,但現在我希望在我的Windows應用程序以c#語言輸入到另一個選項卡的文本框後獲取保存的數據。從MySQL連接中獲取數據並在文本框中顯示它

我已經編碼按鈕「刷新」來獲取數據,但我不知道它的正確與否。基本上我想單擊它,從表中獲取數據,並將其發佈到文本框中。

這是我走到這一步,爲獲取數據部分:

private void button3_Click(object sender, EventArgs e) 
    { 
     string clanname, date, type, rules, final; 
     string connString = "Server=localhost;Database=request;Uid=root;Pwd=;"; 
     using (MySqlConnection mcon = new MySqlConnection(connString)) 
     using (MySqlCommand cmd = mcon.CreateCommand()) 
     { 
      mcon.Open(); 
      cmd.CommandText = "SELECT * FROM requesttcw"; 
      using (MySqlDataReader reader = cmd.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        clanname = textBox1.Text.Trim(); 
        date = textBox2.Text.Trim(); 
        type = textBox2.Text.Trim(); 
        rules = textBox2.Text.Trim(); 
       } 
      } 
     } 
    } 

請幫幫忙! 謝謝

回答

3

在您的問題Select查詢是從您的requesttcw表中提取數據。您需要從reader實例中讀取數據並將其添加到適當的文本框中。舉例來說,你可以做這樣的事情來獲得數據:

//textBox1 will hold the value of the first row and first column of your database. 
textBox1.Text = reader.GetString(0); 

更新索引在GetString以上命令將改變您從中獲取數據的列。因此,您必須適當地更新該索引以從表格中提取適當的數據並插入到正確的文本框的.Text屬性中。

我不知道你在表格中處理的是什麼類型的數據。如果類型不是string,則需要使用相應的Get函數來確定類型,無論是int,double等。有關更多類型,請查看MySqlDataReader reference page

根據您的表格佈局更改的頻率,您可能還希望使用.GetOrdinal來使用讀取器獲取數據。這個命令讓你指定一個列名而不是索引。以上調用可改爲:

//assuming "clanname" is a column in your database 
textBox1.Text = reader.GetString(reader.GetOrdinal("clanname"); 

最後,在你的榜樣,你在你的查詢結果集使用

while (reader.Read()) { ... } 

這將遍歷每一行。我不知道您有多少個文本框,或者您是否正在查找特定格式,但請注意,如果要在文本框中顯示來自多行的字段的數據,則必須附加到Text每個循環迭代的屬性。

相關問題