gpt4 book ai didi

c# - "DataTable already belongs to another DataSet"

转载 作者:太空狗 更新时间:2023-10-30 00:24:56 25 4
gpt4 key购买 nike

我不明白为什么会出现“DataTable 已经属于另一个 DataSet”异常。

这是我的代码:

DataSet AlertSet = new DataSet();

DataTable generalAlertData = new DataTable("GeneralAlertData");
generalAlertData = //function that returns datatable

//throws exception
AlertSet.Tables.Add(generalAlertData)

何时创建另一个数据集以及何时将 generalAlertData 数据表添加到其中?

我尝试使用稍微不同的语法来创建和添加表,但得到了同样的错误:

DataSet AlertSet = new DataSet();

DataTable generalAlertData = //function that returns datatable

//throws exception
AlertSet .Tables.Add(generalAlertData);

最佳答案

这取决于您检索数据表的功能。
如果该函数使用 DataAdapter 并填充数据集,那么您将自动分配表的 DataSet 属性,您需要在分配不同的 DataSet 之前将其删除

您可以尝试删除原始数据集并使用您自己的数据集

    DataTable generalAlertData = GetTable();
DataSet u = generalAlertData.DataSet;
u.Tables.Remove(generalAlertData.TableName);
AlertSet.Tables.Add(generalAlertData);

因此,如果您假设的 GetTable 以这种方式工作

public DataTable GetTable()
{
...
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}

然后您将数据集分配给返回的数据表。
相反,此代码不会将任何内容分配给 DataSet 属性

public DataTable GetTable()
{
...
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}

关于c# - "DataTable already belongs to another DataSet",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20379317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com