请教: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())); 展开
{
// 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())); 展开
展开全部
问题原因: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]同理!!
解决办法:不能直接用某个dataset的table,那么用这个table的复制品可以吧,所有代码改为: dss.Tables.Add(new ToolClass().TableFilter(ds.Tables[0].Copy(), new ToolClass().GetTime()));
ds.Tables[1]和ds.Tables[2]同理!!
展开全部
代码就不看了,至于这个错误,很简单,你对一个DataTable进行反复调用的时候,有必要使用XX.Copy()的方法复制一个新的出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对同一个DataTable操作使用copy()方法获取副本,然后对副本进行操作,不可以对引用直接操作,供参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询