2017-09-15 179 views
-1

下面这段代码对我的作品在指数零插入新的项目,但我一直无法插入---选择---到的第一指标值为零,我曾尝试过:如何从数据库中填充组合框,并在C#

cboGrade.Items.Insert(0,"---Select---) 

但它不适合我。 此外,我希望能够检索和显示在组合框中将DisplayMember和displayvalue而从数据库,而不是被重复的项目检索:

private void LoadGrade() 
    { 
     using (SQLiteConnection conn = new SQLiteConnection(connstring)) 
     { 

      try 
      { 
       string query = "select GradeCode, GradeName from Grade"; 
       SQLiteDataAdapter da = new SQLiteDataAdapter(query, conn); 
       conn.Open(); 
       DataSet ds = new DataSet(); 
       da.Fill(ds, "OrgGrade"); 
       cboGrade.DisplayMember = "GradeName"; 
       cboGrade.ValueMember = "GradeCode"; 
       cboGrade.DataSource = ds.Tables["OrgGrade"]; 

      } 
      catch (Exception ex) 
      { 

       MessageBox.Show("Error occured loading grade!"); 
      } 
     } 
    } 
+0

不要忘记,如果你解决问题了“接受”我的回答 - 我需要:-) –

回答

2

项目只有工作,如果你有一个未绑定的组合,因此您可能需要建立项目阵列,或使用结合。

你需要做的是插入到你这样的结合数据表:

DataTable dt = ds.Tables["OrgGrade"] 
// generate the data you want to insert 
DataRow newRow= dt.NewRow(); 

newRow.GradeName = "-- Select --"; 
newRow.GradeCode = 0; 
// insert in the desired place 
dt.Rows.InsertAt(newRow, 0); 

然后绑定使用:

cboGrade.DataSource = dt; 

类似于你有什么。

+0

的名气点我使用的数据集而不是数据表,你能给我使用DataSet中的例子吗? – UwakPeter

+0

@UwakMfon - 你正在使用'DataTable'。 'ds.Tables [ “OrgGrade”]'返回DataTable'的'实例 – Fabio