2017-03-03 18 views
0

データベースの行を編集するための編集ウィンドウを作成したいと思います。C#データベースの行からすべての項目を取得

データベース行からすべてのアイテムを読み取る方法はありますか?今まで

私のコードは次のとおりです。

private void FirmCustomerValues() 
    { 
     config conf = new config(); 
     connection = new MySqlConnection(conf.connection_string); 
     try 
     { 
      if (this.OpenConnection() == true) 
      { 
       MySqlCommand cmd = new MySqlCommand("SELECT * FROM firmenkunden WHERE id='" + firmCustomerID + "'",connection); 

       MySqlDataReader reader = cmd.ExecuteReader(); 
       while (reader.Read()) 
       { 
        foreach (var row in reader) 
        { 
         System.Windows.Controls.TextBox textbox = new TextBox(); 

         // Textbox Properties 
         textbox.Width = 159; 
         textbox.Name = ""; 
         textbox.Text = reader[1].ToString(); 

         textboxWP.Children.Add(textbox); 
        } 



       } 

      } 
     } 
     catch (MySqlException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

しかし、これは動作しません。 これをどのように解決するか考えている人はいますか?

私はforループも必要と思う。私はC#に新しいので、答えがシンプルなので申し訳ありません。

+0

textBoxWPはどのように設定されていますか? –

+1

このリーダー[1] .ToString();行.ToString(); ? –

+0

サードパーティライブラリ「Dapper」の使用を検討することもできます。プログラムを作成するのがはるかに簡単で、SQLインジェクションに対して安全です。 – NotTelling

答えて

0

foreachループを削除するだけです。

reader.Read()は、返された行を繰り返し処理します。

あなたは、任意の行がある場合

また、これは読みやすいようtextbox.Text = reader["ColumnName"].ToString(); を使用しようとするかを決定するためにreader.HasRows()を使用することができます。あなたの読み取り()ループ

textbox.Name = string.Format("txtText{0}", textBoxCounter); 
textbox.Text = reader[1].ToString(); 
textBoxCounter += 1; 

インサイド

独自のテキストボックス名を生成するには

var textBoxCounter =0; 

お役に立てば幸いです。

+0

reader.HasRows()の使い方は? 私は次のようにしました: 'while(reader.Read()) { System.Windows.Controls.TextBox textbox = new TextBox(); //テキストボックスのプロパティ textbox.Width = 159; textbox.Name = ""; textbox.Text =リーダー["ColumnName"]。ToString(); textboxWP.Children.Add(textbox); } ' しかし、彼は' textbox.Text = reader ["ColumnName"]。ToString(); ' –

+0

できません。そして、その行の各値に対してテキストボックスの代わりにTextBoxを1つだけ作成します。 –

+0

あなたはそれらに一意の名前を付ける必要があります。あなたはそれらを空白にしています。 textboxWPとは何ですか?私は答えを編集しました – Wheels73

関連する問題