2016-06-11 4 views
1

Ich versuche, meine Combobox von SQL zu füllen, aber wenn ich einen Wert Mitglied zuweisen, es gibt mir die folgenden FehlerBestücken ComboBox von SQL in C#

cannot explicitly convert int into string 

Können Sie mir helfen, zu verstehen und korrigiere meinen Fehler?

void Fillcombo() 
    { 
     string query_select = "SELECT * FROM department"; 
     DataTable dt = DataAccess.selectData(query_select); 
     SqlDataReader dr = DataAccess.selectDataReader(query_select); 
     while (dr.Read()) 
      { 
       string dpt_name = dr.GetString(1); 
       int dpt_id = (int)dr.GetValue(0); 
       comboBox1.DataSource = dt; 
       comboBox1.ValueMember = dpt_id; // error here 
       comboBox1.DisplayMember = dpt_name; 

      } 
    } 

Antwort

1

Sie müssen Namen Spalte in DataSource (DataTable) zu ValueMenmber und DisplayMember als String zuweisen, und Sie brauchen nicht zu verwenden, während Schleife, wie folgt aus:

void Fillcombo() 
{ 
    string query_select = "SELECT * FROM department"; 
    DataTable dt = DataAccess.selectData(query_select); 
    comboBox1.DataSource = dt; 
    comboBox1.ValueMember = "ColumnName_DepartmentID"; 
    comboBox1.DisplayMember = "ColumnName_DepartmentName"; 
} 
+0

nein es gibt immer noch Fehler. –

+0

Sie müssen keine while-Schleife wie Antwort verwenden. –

+0

ohh yess .. es funktioniert .. Vielen Dank ... –

0

Sie sollten es schreiben in einem Zeichenkettenformat:

comboBox1.ValueMember = "dpt_id";