2016-06-11 121 views
1

我试图从SQL填充我组合框但是当我的值成员分配给它,它给了我下面的错误填充组合框从SQL在C#

cannot explicitly convert int into string 

你能帮助我理解并纠正我的错误?

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; 

      } 
    } 

回答

1

您必须DataSourceDataTable)到ValueMenmberDisplayMember作为字符串指定列的名称,你不需要使用while循环,如下所示:

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

不,它仍然给出错误。 –

+0

你不需要像循环一样使用while回答。 –

+0

ohh yess ..它正在工作.. Thankx很多... –

0

你应该把它写以字符串格式:

comboBox1.ValueMember = "dpt_id";