0

我有一个数据集,其中包含三个表 dt1、dt2 和 dt3(按顺序),现在我正在维护每个表的视图状态,以在回发中保留表(即我在视图状态中有最新的 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[] 是只读的。任何人都可以帮助我该怎么做。让我知道是否有人需要有关我的问题的更多信息。

4

1 回答 1

2

你应该使用

DataSet ds = new DataSet();
ds.Tables.Add(YourDataTable);

或者

ds.Tables.AddRange(YourDataTableArray);

要从中更新现有表,dsViewState可以尝试两种方法。

  1. DataSet通过 using方法从表中删除DataSet.Tables.Remove("Table");,请注意,您不应依赖index从 DataSet 中获取表的方法,而应为表提供一个唯一名称,以便您可以在需要时获取和删除它们。
  2. 您可以使用循环方法从您的行中获取行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);
于 2012-08-19T10:44:18.847 回答