【问题标题】:how to update specific table inside dataset in asp.net如何在asp.net中更新数据集中的特定表
【发布时间】:2012-08-15 02:05:09
【问题描述】:

我有一个数据集,其中包含三个表 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[] 是只读的。 任何人都可以帮助我该怎么做。如果有人需要有关我的问题的更多信息,请告诉我。

【问题讨论】:

    标签: asp.net datatable dataset viewstate


    【解决方案1】:

    你应该使用

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

    ds.Tables.AddRange(YourDataTableArray);
    

    要从ViewState 更新ds 中的现有表,您可以尝试两种方法。

    1. 使用DataSet.Tables.Remove("Table"); 方法从DataSet 中删除表,请注意,您不应依赖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);
    

    【讨论】:

    • 嗨@yogi 感谢您的回复,实际上我想更新数据集中特定索引上的现有表,使用上述方法,我将添加新表而不是更新现有表。
    • 我在 ds.Tables[0] 上面试过,但它说 ds.Tables[0] 是只读的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2014-08-09
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多