2012-02-13 10 views
1

私はMySQLテーブルを作成しました。私はデータを挿入することができますが、私はWindowsアプリケーションの別のタブのTextBoxにc#言語で入力した後、保存したデータを取得したいと思います。MySQL接続からデータを取得してTextBoxに表示

データを取得するために「リフレッシュ」ボタンをコーディングしましたが、正しいかどうかはわかりません。基本的には、それをクリックしてテーブルからデータを取得し、テキストボックスに投稿します。

は、ここで私は取得データ部分のために、これまでに得たものである:

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以外の場合は、intdoubleなど、タイプに応じて適切なGet関数を使用します。MySqlDataReader reference pageのタイプを確認してください。

テーブルレイアウトの変更頻度によっては、.GetOrdinalを使用してリーダーを使用してデータを取得することもできます。このコマンドを使用すると、索引ではなく列名を指定できます。 、

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

最後にあなたの例では、あなたのクエリの結果セット内の各行を

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

この意志ループを使用:上記の呼び出しに変更することができます。あなたが持っているテキストボックスの数がわからない、または特定のフォーマットを探している場合は、テキストボックス内の複数行のフィールドのデータを表示する場合は、Textに追加する必要があります各ループ反復のプロパティ。

関連する問題