1

次のコードを使用しています。

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

   }

私の問題は、ComboBoxを呼び出し始めたときにSystem.Data...表示され、値を表示してほしいということです。

私は何が間違っているのですか?

4

1 に答える 1

2

あなたのコンボボックスの行は次のように見えると思います。

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

DisplayMemberコンボボックスとValueMemberプロパティを設定する必要があります。

これで問題が解決しない場合は、動的に物事をより明確にするようにしてください。

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());
}
于 2013-01-08T22:03:21.710 に答える