2009-11-22 2 views
1

한 번 저장하고 싶습니다. 콤보 상자 1에 표의 열 데이터를 저장 하시겠습니까?콤보 박스에 데이터 한 열 저장

SqlCommand cmdRe = new SqlCommand("select FK_RoleID from SO_User_Table", cn); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     DataTable dt = new DataTable(); 
     try 
     { 
      cn.Open(); 
      da.SelectCommand = cmdRe; 
      da.Fill(dt); 
      // textBox1.Text = dt.Rows[0].ItemArray[0].ToString(); 

      this.comboBox1.DisplayMember= "FK_RoleID"; 
      this.comboBox1.ValueMember = "FK_RoleID"; 
      this.comboBox1.DataSource = da; 
     } 

     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     finally 
     { 

      cn.Close(); 
     } 
+5

문제점 : 오류가 무엇입니까? "작동하지 않습니다"- 증상은 무엇입니까? –

+0

(이중 게시하지 마십시오. 병합) –

답변

0

전화 DataBind() 당신의 콤보 상자 컨트롤 : 여기에 작동하지 않는 코드 당신은 테이블에 결합 할 필요가

this.comboBox1.DataSource = da; 
this.comboBox1.DataBind(); 
4

가 아닌 어댑터 :

this.comboBox1.DataSource = dt; 

도 - using을 사용하는 경우 코드를 약간 단순화 할 수 있습니다 (finally 등은 필요하지 않음) :

using(SqlCommand cmdRe = {blah}) { 
    // {blah} 
} 

마지막으로 .NET 개발을 진행하면서 UI와 데이터 논리를 분리하는 것이 좋습니다. db-command와 ui-control을 같은 방법 (또는 dll)으로 사용하는 것은 종종 코드 냄새입니다.

0

dt는 데이터 어댑터가 아닌 데이터 소스로 사용해야합니다. 둘째, dataadapter 및 C# 2.0 또는 3.0을 사용하는 경우 sqlcommand 객체가 필요하지 않습니다. select 문은 dataadapter의 생성자 (MSDN 링크 - http://msdn.microsoft.com/en-us/library/bh8kx08z.aspx)에 저장하십시오. 희망이 도움이됩니다.

웨이드

1

당신은 콤보 상자의 DataValueField 및 DataTextField 속성을 설정해야합니다. 아래 수정 사항을 확인하십시오.

void textbox_value_load() 
     { 
      SqlCommand cmdRe = new SqlCommand("select FK_RoleID from SO_User_Table", cn); 
      SqlDataAdapter da = new SqlDataAdapter(); 
      DataTable dt = new DataTable(); 
      try 
      { 
       cn.Open(); 
       da.SelectCommand = cmdRe; 
       da.Fill(dt); 


       this.comboBox1.DataSource = da; 
       this.comboBox1.DataValueField = ""; //Name of the Id column 
       this.comboBox1.DataTextField = ""; //Name of the value/name column 
       this.comboBox1.DataBind(); 


      } 

      catch (System.Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
      finally 
      { 

       cn.Close(); 
      } 

     } 
+1

두 개의 추가 된 행 중 .ComboBox1 부분이 누락되었습니다. =) –

+0

오! 죄송합니다. dat을주의 해 주셔서 감사합니다. – Tebo

관련 문제