2011-07-19 99 views
0

我有一個datagridview包含第一列(組合框),第二和第三列是文本框。使用數據表填充組合框。我的問題是在加載表單上,我會從我的數據庫中獲取記錄,並在這些記錄中設置我的組合框的值。所以如果我的數據庫有5條記錄,那麼我的datagridview中應該有5行包含組合框。datagridview combobox

任何建議將不勝感激

我嘗試下面的代碼,但有一個錯誤說法,但「出現在DataGridView ....以下異常」會顯示正確,但如果我點擊的任何細胞,其錯誤總是出現。

Private Sub frmEditIngredientManagement_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    sSQL = "SELECT * FROM fs_nutrient" 
    ReadSQL(sSQL) 

    Dim dtNutrient As New DataTable 
    dtNutrient.Load(reader) 

    dgvCbxIngredientList.DataSource = dtNutrient 
    dgvCbxIngredientList.DisplayMember = "ndb_no" 
    dgvCbxIngredientList.ValueMember = "nutrient_id" 

    sSQL = "SELECT * FROM fs_ingredient_management_nutrient INNER JOIN fs_nutrient ON fs_ingredient_management_nutrient.nutrient_id = fs_nutrient.nutrient_id WHERE ingredient_management_id = " & intIngredientManagementId & " " 
    ReadSQL(sSQL) 

    If reader.HasRows Then 
     While reader.Read 
      Dim row As String() = New String() {reader("ndb_no"), "dd", "vv"} 
      dgvNutrient.Rows.Add(row) 
     End While 
    End If 
End Sub 

回答

2

完全新的答案。附近發現該錯誤的方式:

答案是MSDN datagridviewcomboboxcolumn helpfile

發現添加這個例程來「報告錯誤」,忘了錯誤,你得到:

Private Sub dgvNutrient_DataError(ByVal sender As Object, ByVal e As DataGridViewDataErrorEventArgs) Handles dgvNutrient.DataError 
    'MessageBox.Show("Error happened " & e.Context.ToString()) 
End Sub 
+0

嗨馬丁,感謝您的偉大的解決方案。它像一個魅力。 – tirso