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

도움을 주시면 감사하겠습니다. 당신은 더 나은 아직 EntityFramework 및 데이터 바인딩 DataSets에 최대 읽거나해야

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

다음 DataTableDataSource

+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

왜 사용하지 마십시오.

+0

확인이 훨씬 간단하게 보이지만 배포 할 때 "System.Data.DataRowView"대신 데이터베이스 값. 뭔가를 문자열로 변환해야합니까? –

+2

필요하지 않습니다. 디스플레이 멤버를 지정하기 만하면됩니다. DisplayMember = "part_num"입니다. – Mithrandir

+0

아, 실수로 코드의 일부를 잘라내는 것처럼 보입니다. 지금 일하고있는 모두는 정말로 도움에 감사한다! –

관련 문제