2012-02-02 3 views
4

Я начинаю C#. Я пытаюсь извлечь данные из столбца базы данных SQL и записать их в список. В принципе, я хочу, чтобы данные в столбце part_num моей таблицы отображались динамически в списке.Как динамически заполнять список со значениями SQL

Я видел:

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

Но как бы я идти о замене «Часть1» и «Part2» с динамически сгенерированных значений из SQL?

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"}); 
    } 
} 

Любая помощь приветствуется!

+1

Связать непосредственно с DataTable. http://msdn.microsoft.com/en-us/library/w67sdsex.aspx BTW, поскольку ваш SqlConnection реализует IDisposable, вы должны посмотреть на инструкцию using, а также перевести свой код привязки данных к собственному методу. http://msdn.microsoft.com/en-us/library/yh598w02%28v=VS.80%29.aspx – Lloyd

ответ

8

Почему бы не использовать DataTable в DataSource:

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"; 
     } 

Вы должны прочитать на DataSets или даже еще лучше EntityFramework и связывания данных.

+0

OK это кажется намного проще, но когда я его развертываю, я вижу «System.Data.DataRowView», а затем значения базы данных. Должен ли я преобразовать что-то в строку? –

+2

Вам не нужно. Просто укажите DisplayMember, например. DisplayMember = "part_num". – Mithrandir

+0

Ahh, похоже, что я случайно отсекаю часть кода. Все работающие сейчас, действительно ценят помощь! –

Смежные вопросы