Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在asp.net中更新数据集中的特定表_Asp.net_Datatable_Dataset_Viewstate - Fatal编程技术网

如何在asp.net中更新数据集中的特定表

如何在asp.net中更新数据集中的特定表,asp.net,datatable,dataset,viewstate,Asp.net,Datatable,Dataset,Viewstate,我有一个数据集,其中包含三个表dt1、dt2和dt3(按顺序),现在我维护每个表的viewstate,以在回发过程中保留表(即viewstate中有最新的DataTable),现在问题是我想将dt3的viewstate应用于数据集中的相应表,即dt3,我正在执行以下操作: dataSet.Tables[(it will be dynamically fetched, say for here its) 0] = ViewState["DataTable" + (it will be dynami

我有一个数据集,其中包含三个表dt1、dt2和dt3(按顺序),现在我维护每个表的viewstate,以在回发过程中保留表(即viewstate中有最新的DataTable),现在问题是我想将dt3的viewstate应用于数据集中的相应表,即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[]是只读的。 有人能帮忙吗?我该怎么办。如果有人需要有关我的问题的更多信息,请告诉我。

您应该使用

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

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

  • 使用
    DataSet.Tables从
    DataSet
    中删除表。删除(“表”)
    method,请注意,您不应该依赖
    index
    方法从数据集中获取表,而应该为表提供唯一的名称,以便在需要时获取和删除它们
  • 您可以使用循环方法从
    viewstatedatatable
    中获取行,然后将它们逐个插入数据集的表中,类似这样


  • hi@yogi感谢您的回复,实际上我想更新数据集中特定索引上的现有表,使用上述方法,我将添加新表,而不是更新现有表。我尝试了ds.Tables[0]上面的内容,但它说ds.Tables[0]是只读的
    ds.Tables.AddRange(YourDataTableArray);
    
    ds.Tables[0].Rows.Clear();
    DataTable dtFromViewState = ViewState["dt"] as DataTable;
    foreach (DataRow row in dtFromViewState.Rows)
      ds.Tables[0].Rows.Add(row.ItemArray);