我在 DataGridView 中添加了一个 ComboBox
DBAccess dba = new DBAccess();
DataTable dt = dba.spGetASTMTable(); // Getting Data from DataBase for Grid
DataTable dtOrders = dba.spGetOrdersList(); / Getting Data from DataBase for ComboBox
// Create ComboBox
var cboDbTableColumn = new DataGridViewComboBoxColumn();
cboDbTableColumn.DataSource = dtOrders;
cboDbTableColumn.DataPropertyName = "OrdersID";
cboDbTableColumn.DisplayMember = "Orders";
cboDbTableColumn.HeaderText = "DbTableColumn";
gvASTMOrderMessage.Columns.Add(cboDbTableColumn);
gvASTMOrderMessage.DataSource = dt;
然后我运行我的应用程序并更改几个 ComboBoxes。我单击“保存”按钮,我想获取包含所有 DataGridView 数据的 DataTable。据我了解,由于我的 ComboBox 在 DataSource 的一部分上,因此我需要遍历整个 Grid 并将 ComboBox 的值手动添加到我的 DataTable 中。我正在尝试在这里执行此步骤:
private void btnSave_Click(object sender, EventArgs e)
{
DataTable data = (DataTable)(gvASTMOrderMessage.DataSource);
data.Columns.Add("DbTableColumn");
for (int i = 0; i < gvASTMOrderMessage.Rows.Count; i++)
{
data.Rows[i]["DbTableColumn"] = Convert.ToString((gvASTMOrderMessage.Rows[i].Cells[0] as DataGridViewComboBoxCell).FormattedValue.ToString());
}
}
但这不起作用。我试图得到
gvASTMOrderMessage.Rows[i].Cells[0].FormattedValue.ToString()
gvASTMOrderMessage.Rows[i].Cells[0].Value.ToString()
gvASTMOrderMessage.Rows[i].Cells[0].EditedFormattedValue.ToString()
但这些都不起作用......
请帮助,如何从我的 DataGridView 获取每个组合框的所有值并将它们添加到 DataTable?