我有一個數據集,其中有2個表available.This表是從DATABSE在加載頁面填寫。 現在考慮我的情況。 頁面加載時,數據集的這兩個表格將填充來自數據庫的數據。不改變原有的RowState排序在數據集的DataTable
表1:項目總體具有1點的行(主表)
表2:項目詳細的5行(子表 - 在GridView控件綁定)
如果我什麼都不做,以「項目詳細信息」表中,然後我的值MyDataset.Tables["ProjectDetailTable"].GetChanges(DataRowState.Modified)
是NULL。
但是,如果我從UI添加新的數據行到「項目詳細信息」表中,我將得到值爲MyDataset.Tables[TableName].GetChanges(DataRowState.Modified)
是添加新行的數據表。
在UI,我想,當用戶從UI.So添加新的數據行,我沒有這樣的代碼和創建方法時,增加了新的數據行被排序的「項目詳細信息」表中。
private void SortProjectDetailTable(ref DataSet ds)
{
DataView dv = new DataView(ds.Tables["ProjectDetailTable"]);
DataTable dtTemp = new DataTable("ProjectDetailTable");
dv.Sort = " DATE DESC ";
dtTemp = dv.ToTable().Copy();
if (ds.Tables.Contains("ProjectDetailTable"))
ds.Tables.Remove("ProjectDetailTable");
ds.Tables.Add(dtTemp);
}
此方法完美地對數據表進行排序。但是,當我試圖讓的「MyDataset.Tables["ProjectDetailTable"].GetChanges(DataRowState.Modified)
」的值,我得到它NULL而「MyDataset.Tables["ProjectDetailTable"].GetChanges(DataRowState.Added)
」值數據表6行。
其實我希望它這樣
MyDataset.Tables["ProjectDetailTable"].GetChanges(DataRowState.Modified)
值應爲「從UI 1新添加的行」MyDataset.Tables["ProjectDetailTable"].GetChanges(DataRowState.Added)
值應爲「空」,因爲我得到了頁面加載事件 從DATABSE 5行
最後,問題是,我要排序的數據集DataTable中而不影響數據集行的原始狀態。
我想對我從數據庫和UI獲得的所有表格行進行排序。 – ravidev