我有一个数据集,其中包含三个表dt1,dt2和dt3(在序列中),现在我维护每个表的viewstate,以保留表的回发,(即我在viewstate中有最新的DataTable),现在问题是我想将dt3的ViewState应用于DataSet中的相应表,即dt3,我在下面做:
dataSet.Tables[(it will be dynamically fetched, say for here its) 0] = ViewState["DataTable" + (it will be dynamically fetched, say for here its) 0]
但是我收到错误,说dataSet.Tables []是只读的。 任何人都可以帮助我如何去做。如果有人需要有关我的问题的更多信息,请与我们联系。
答案 0 :(得分:2)
你应该使用
DataSet ds = new DataSet();
ds.Tables.Add(YourDataTable);
OR
ds.Tables.AddRange(YourDataTableArray);
要从ds
更新ViewState
中的现有表格,您可以尝试两种方法。
DataSet
方法从DataSet.Tables.Remove("Table");
删除表,请注意,您不应该依赖index
方法从DataSet中获取表,而应该为表提供一个唯一的名称,以便您可以在需要时获取和删除它们。ViewState DataTable
获取行,然后将它们逐个插入DataSet的表中,像这样。ds.Tables[0].Rows.Clear();
DataTable dtFromViewState = ViewState["dt"] as DataTable;
foreach (DataRow row in dtFromViewState.Rows)
ds.Tables[0].Rows.Add(row.ItemArray);