2015-07-11 47 views
0

我在Windows窗體上使用C#和SQL Server 2014作爲標題說,我想在一個特定的列來改變DataGridView的單元格/ s到組合框場,如果他們的工作空。變化的datagridview單元格的組合框,如果空/(空)C#

我的形式負載的方法是這樣的:

private void AdminPanel_Load(object sender, EventArgs e) 
    { 
     DBConn.ConnectToDatabase(); 

     dataGridViewAP.DataSource = DBConn.getAdminInfo(); 

    } 

我有這樣

public DataTable getAdminInfo() 
    { 
     try 
     { 
      string strCommand = "SELECT Customer.AccountNo AS [Account Number], Customer.Name AS [Customer Name], Customer.Adrs1 AS [Address 1], Customer.Adrs2 AS [Address 2], Customer.City AS [City], Customer.Province AS [Province], Customer.PostalCode AS [Postal Code], Customer.Email1 AS [Email], Manifest.Class AS [Class], Manifest.Rname AS [Recipient Name], Manifest.Adrs1 AS [Dest. Address 1], Manifest.Adrs2 AS [Dest. Address 2], Manifest.City AS [City], Manifest.State AS [State], Manifest.PostalCode AS [Postal Code], Manifest.Country AS [Country], Manifest.Item AS [Description], Manifest.Weight AS [Weight (lb)], Manifest.Value AS [Value (USD)], Manifest.DateTime AS [Date/Time], Manifest.CheckedBy AS [Checked By], Customer.AccStatus AS [Account Status] FROM Customer INNER JOIN Manifest ON Customer.AccountNo = Manifest.FKAccountNo WHERE CONVERT(DATE,DateTime)=CONVERT(Date,GETDATE())"; 
      DataTable dt = new DataTable(); 
      SqlDataAdapter da = new SqlDataAdapter(strCommand, conn); 
      da.Fill(dt); 
      return dt; 
     } 
     catch (SqlException e) 
     { 
      MessageBox.Show(e.Source + "/n" + e.Message + "/n" + e.StackTrace); 
      return null; 
     } 
    } 

我要添加組合框細胞帳戶狀態欄電池與更新它的方法getAdminInfo()所選值如果爲空。

希望我的問題是清楚的,任何想法?

回答

2

到DataTable到DataGridView的綁定,創建對應於特定列DataGridViewComboBoxColum和設置列其DataPropertyName財產之前。通過綁定指定ComboBox項目。

代碼在你的負載功能插入:

DataGridViewComboBoxColumn cbcol = new DataGridViewComboBoxColumn(); 
cbcol.Name    = "Account_Status" ; 
cbcol.DataPropertyName = "Account Status" ; // DataTable column name 
cbcol.DataSource  = ...    ; // ComboBox DataSource 
dataGridViewAP.Columns.Add(cbcol); 
dataGridViewAP.DataSource = DBConn.getAdminInfo(); 
+0

對不起亂畫我的反應遲緩。首先感謝您的迴應。有用。有什麼辦法恢復細胞回到以前的狀態即空/空?因爲一旦我點擊組合框,某些值將保持選中狀態。我已經使用清單作爲cbcol數據源,我又增加了空字段列表(「」),選擇一個空字段。我不確定這是否是正確的做法。 – Vik

+0

一種可能性(未測試)是一個新的空行添加到DataGridViewComboBoxColumn數據源。 – Graffito

相關問題