2012-02-02 29 views
4

私はC#の初心者です。私がやろうとしているのは、SQLデータベースの列からデータを取り出し、それをリストボックスに書き込むことです。基本的には、テーブルのpart_num列のデータをリストボックスに動的に表示する必要があります。リストボックスにSQL値を動的に取り込む方法

私が見てきた:

this.listParts.Items.AddRange(new object[] {"Part1", "Part2"}); 

をしかし、どのように私は、SQLから動的に生成された値で「パート1」と「パート2」を置き換えるに行きますか?

public mainForm() 
{ 
    InitializeComponent(); 
    SqlConnection conn = new SqlConnection(
     "Data Source=DBELL;Initial Catalog=part_table;Integrated Security=True"); 
    conn.Open(); 
    DataSet ds = new DataSet(); 
    SqlDataAdapter adapter = new SqlDataAdapter(
     "SELECT part_num from customParts", conn); 
     adapter.Fill(ds); 
    foreach (DataRow row in ds.Tables[0].Rows) 
    { 
     for (int i = 0; i < ds.Tables[0].Columns.Count; i++) 

     this.listParts.Items.AddRange(new object[] {"Part1", "Part2"}); 
    } 
} 

ご協力いただきましてありがとうございます。あなたがDataSetsあるいはいっそEntityFrameworkとデータ・バインディング上に読んでください

public mainForm() 
     { 
      InitializeComponent(); 
      SqlConnection conn = new SqlConnection("Data Source=DBELL;Initial Catalog=part_table;Integrated Security=True"); 
      conn.Open(); 
      DataSet ds = new DataSet(); 
      SqlDataAdapter adapter = new SqlDataAdapter(
      "SELECT part_num from customParts", conn); 
      adapter.Fill(ds); 
      this.listParts.DataSource = ds.Tables[0]; 
      this.listParts.DisplayMember = "part_num"; 
     } 

+1

DataTableに直接バインドします。 http://msdn.microsoft.com/en-us/library/w67sdsex.aspxあなたのSqlConnectionはIDisposableを実装しているので、usingステートメントを見て、データバインドコードを独自のメソッドに移動する必要があります。 http://msdn.microsoft.com/en-us/library/yh598w02%28v=VS.80%29.aspx – Lloyd

答えて

8

なぜDataSourceとしてDataTableを使用していません。

+0

これははるかに簡単だと思われますが、展開すると、むしろ "System.Data.DataRowView"が表示されますデータベース値。何かを文字列に変換する必要がありますか? –

+2

する必要はありません。 DisplayMemberを指定するだけです(例: DisplayMember = "part_num" – Mithrandir

+0

ああ、私は誤ってコードの一部を切り取ったようです。すべての今働いて、本当に助けに感謝! –

関連する問題