请教:DataTable已属于另一个DataSet

if(Drop1.SelectedValue!=""&&Drop1.SelectedValue!=null){//DataSetds=this.GetDataSource... if (Drop1.SelectedValue != "" && Drop1.SelectedValue != null)
{
// DataSet ds = this.GetDataSource();
DataSet dss = new DataSet();
dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[0], new ToolClass().GetTime()));
dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[1], new ToolClass().GetTime()));
dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[2], new ToolClass().GetTime()));
//DS.Table.Add(DT.Copy())

// DataSet dtTemp = new ToolClass().TableFilter(this.GetDataSource(), new ToolClass().GetTime());
DataTable dt = new DataTable();
string title = null;
switch (data)
{
case 0:
title = "进出客流";
break;
case 1:
title = "进客流";
break;
case 2:
title = "出客流";
break;
}

dt.Columns.Add("类型");
for (int i = 0; i < dss.Tables[data].Rows.Count; i++)
{
dt.Columns.Add(dss.Tables[data].Rows[i][0].ToString());
}

DataRow dr = dt.NewRow();
dr[0] = title;
for (int ii = 1; ii <= dss.Tables[data].Rows.Count; ii++)
{
dr[ii] = dss.Tables[data].Rows[ii - 1][1].ToString();
}

dt.Rows.Add(dr);

// gv.DataSource = new ToolClass().TableFilter(dt, new ToolClass().GetTime());
gv.DataSource = dt;
gv.DataBind();
错误问题??????????????????
DataTable 已属于另一个 DataSet。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: DataTable 已属于另一个 DataSet。

源错误:

行 221: // DataSet ds = this.GetDataSource();
行 222: DataSet dss = new DataSet();
行 223: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[0], new ToolClass().GetTime()));
行 224: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[1], new ToolClass().GetTime()));
行 225: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[2], new ToolClass().GetTime()));
展开
 我来答
ssmy03086209
推荐于2018-03-13 · TA获得超过102个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:126万
展开全部
问题原因:ds 和 dss为两个dataset,你要将ds的表添加到dss中,这是不允许的,所有报datatable已经属于dataset的错误信息!
解决办法:不能直接用某个dataset的table,那么用这个table的复制品可以吧,所有代码改为: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[0].Copy(), new ToolClass().GetTime()));
ds.Tables[1]和ds.Tables[2]同理!!
bishang888
2011-12-29 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:99.2万
展开全部
代码就不看了,至于这个错误,很简单,你对一个DataTable进行反复调用的时候,有必要使用XX.Copy()的方法复制一个新的出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友40bdbcbd8
2012-01-03 · TA获得超过424个赞
知道答主
回答量:53
采纳率:0%
帮助的人:62.6万
展开全部
对同一个DataTable操作使用copy()方法获取副本,然后对副本进行操作,不可以对引用直接操作,供参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fei419125524
2011-12-29
知道答主
回答量:19
采纳率:0%
帮助的人:8.4万
展开全部
学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式