2016-04-27 26 views
-1

目前,我正在使用來自數據庫的項目填充組合框。但是,我希望組合框的第一項是「---選擇---」。下面的代碼。數據庫中的所有項目都被填充,但不包含項目「---選擇---」。任何在這方面的幫助,高度讚賞。如何使用c在組合框中添加額外的項目#

private void popClass() 
{ 
    cmbClass.Items.Clear(); 
    DataSet ds = new DataSet(); 
    cmbClass.Items.Add("---Select----"); 
    string sqlPS = @"SELECT * FROM tblclass_msb"; 
    try 
    { 
     using (FbConnection conPS = new FbConnection(connectionString)) 
     { 
      conPS.Open(); 
      using (FbCommand cmdPS = new FbCommand(sqlPS, conPS)) 
      { 
       using (FbDataAdapter da = new FbDataAdapter()) 
       { 
        da.SelectCommand = cmdPS; 
        da.Fill(ds); 
        cmbClass.DataSource = ds.Tables[0]; 
        cmbClass.ValueMember = "c_id"; 
        cmbClass.DisplayMember = "c_name"; 
       } 
      } 
     } 
    } 
    catch (FbException ex) 
    { 
     MessageBox.Show("PC-->>" + ex.Message); 
    } 
} 

我曾嘗試在其他線程某處提到的其他解決方案,但它不是爲我工作

回答

2

你必須在零位置添加新行,你一個做這樣的:

private void popClass() 
{ 
    cmbClass.Items.Clear(); 
    DataSet ds = new DataSet(); 
    cmbClass.Items.Add("---Select----"); 
    string sqlPS = @"SELECT * FROM tblclass_msb"; 
    try 
    { 
     using (FbConnection conPS = new FbConnection(connectionString)) 
     { 
      conPS.Open(); 
      using (FbCommand cmdPS = new FbCommand(sqlPS, conPS)) 
      { 
       using (FbDataAdapter da = new FbDataAdapter()) 
       { 
        da.SelectCommand = cmdPS; 
        da.Fill(ds); 
        DataRow dr=ds.Tables[0].NewRow(); 
        dr["c_id"]=0; 
        dr["c_name"]="--Select--"; 
        ds.Tables[0].Rows.InsertAt(dr,0); 
        cmbClass.DataSource = ds.Tables[0]; 
        cmbClass.ValueMember = "c_id"; 
        cmbClass.DisplayMember = "c_name"; 
       } 
      } 
     } 
    } 
    catch (FbException ex) 
    { 
     MessageBox.Show("PC-->>" + ex.Message); 
    } 
} 
+0

以上顯示了da.Tables [0] .NewRow();的錯誤。 –

+0

使用ds.Tables [0] .NewRow();而不是 – rashfmnb

+0

好吧,什麼是「dt」dt.Rows.InsertAt(dr,0); ?? –

0

如果您使用SqlCommand連接到SQL Server,則可以簡單地將SQL語句更改爲以下內容:

string sqlPS = @"select 0 as c_id, '--Select--' as c_name union SELECT c_id, c_name FROM tblclass_msb"; 

但是,它看起來像你連接到火鳥,我不能確定是否支持工會。

+0

感謝您的回覆,但您的查詢不執行。它顯示我在「工會」的錯誤 –

+0

道歉,我可以驗證連接到SQL Server的解決方案,但它看起來像你使用的是火鳥,我無法檢查是否聯盟在該平臺上得到支持。至少你似乎已經解決了這個問題。 – abrown

相關問題