我有一個DataGridView鏈接到TableAdapter。由於表的某些列對DataGridView是隱藏的,因此必須在將更改提交到數據庫(其中一些是外鍵)之前添加隱藏列的內容。
我試圖做的是攔截添加的行,將數據添加到相關列,然後繼續提交更改。下面是代碼:
var createdRows = (ExampleDataset.ExampleTableDataTable)this.ExampleDataset.ExampleTable.GetChanges(DataRowState.Added);
try
{
if(createdRows != null)
{
foreach(var row in createdRows)
{
row.ID_OTHER_TABLE = this.idOtherTable;
row.REF_OTHER_TABLE = this.refOtherTable;
}
}
this.exampleTableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.ExampleDataSet);
this.ExampleDataSet.AcceptChanges();
}
catch(Exception ex)
{
MessageBox.Show("Error updating database: " + ex.Message);
}
我可以在另外的看法,通過調試檢查表看,就是添加的行被抓獲,正在編輯的字段,行保存到數據庫中,但foreach()
裏面增加的信息沒有被保存。
我雖然如此,但如果我嘗試編輯後添加的行回數據表,我得到一個錯誤,該行已經在表中。請幫忙,我知道我很困惑,並且解決方案會變成像一行代碼。 – guillegiraldo