ComboBox を DataGridView に追加しました
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 に追加する方法を教えてください。