2013-01-08 4 views
1

다음 코드를 사용하고 있습니다.어떻게하면 선택 C#을 사용하여 콤보 상자를 채울 수

public void MostrarCombobox(ComboBox cmbIDart) 
    { 
     Command = "SELECT idArtigoAvaliar FROM dbo.PorAvaliasao WHERE (avaliado = 0) AND (idAutor ='" + Autor.id2 + "')"; 

     SqlCommand Comm1 = new SqlCommand(Command, Conn); 
     SqlDataAdapter data = new SqlDataAdapter(Comm1); 

     SqlCommand sqlCommand = new SqlCommand(); 

     using (Conn) 
     { 
      sqlCommand = Conn.CreateCommand(); 

      sqlCommand.CommandText = Command; 

      SqlDataAdapter sda = new SqlDataAdapter(sqlCommand.CommandText, Conn); 

      SqlCommandBuilder scb = new SqlCommandBuilder(sda); 

      //Criar uma tabela para receber os dados 
      DataTable dTable = new DataTable(); 

      //Preencher a tabela 
      sda.Fill(dTable); 

      BindingSource bSource = new BindingSource(); 
      bSource.DataSource = dTable; 
      cmbIDart.DataSource = bSource; 

      Conn.Close(); 
     } 

    } 

내 문제는 내가 콤보 상자를 호출하기 시작하고 때, 그것은 System.Data... 보여주고 있다는 것입니다 그리고 나는 그들이 값을 보여주고 싶어요.

내가 뭘 잘못하고 있니?

+0

* system.data (기타) * ...? 질문 할 때 좀 더 구체적이어야합니다 =) –

답변

2

내 생각에 당신의 콤보 박스 행은 다음과 같이 보이게됩니다.

System.Data.DataRowView 
System.Data.DataRowView 
System.Data.DataRowView 
System.Data.DataRowView 
System.Data.DataRowView 

당신은 당신의 콤보 상자 DisplayMemberValueMember 속성을 설정해야합니다.

그래도 문제가 해결되지 않으면 동적으로 더 명확하게 해보십시오.

Combobox1.Items.Clear(); 

string Command = "SELECT idArtigoAvaliar FROM dbo.PorAvaliasao WHERE (avaliado = 0) AND (idAutor ='" + Autor.id2 + "')"; 

SqlCommand cmd = new SqlCommand(Command, Conn); 
cmd.CommandText = Command; 

SqlDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    Combobox1.Items.Add(dr["idArtigoAvaliar"].ToString()); 
} 
관련 문제