读书人

该行已经属于另一个表.如何解决

发布时间: 2012-06-28 15:20:03 作者: rapoo

该行已经属于另一个表...怎么解决啊
private void Data_Bind()
{
//================ 1.0 数据初始化 ===========
SQLBuilder sSql = new SQLBuilder();
string sPaperUID = ConvertUtil.ToString(Request["uid"]);
int nCount = 1000;

//================ 2.0 拼SQL ===========
sSql.AddCondition("paper_uid", "组卷号", sPaperUID, SQLConditionOperator.Equal);
sSql.PushSortField("outline_uid");

if (sPaperUID != "")
{
//IList<TbPaperExaminationProcessView> list = TbPaperExaminationProcessView.GetDataSetWhere(sSql.ToWhereString(), sSql.ToOrderByString(), 0, 1000,ref nCount);

DataSet ds = new DataSet();
DataTable dt = new DataTable();

ds = TbPaperExaminationProcessView.GetDataSetWhere(sSql.ToWhereString(), sSql.ToOrderByString(), 0, 1000, ref nCount);

foreach (DataRow dr in ds.Tables[0].Rows)
{
string sTqType = ConvertUtil.ToString(dr["tq_type"]);
if (sTqType == "simple")
{
Repeater_Info.DataSource = ds;
Repeater_Info.DataBind();
}
else
{
// dt.ImportRow(dr);
dt.Rows.Add(dr); //总是说该行已经属于被另一个表

Repeater_jianda.DataSource = dt;
Repeater_jianda.DataBind();
}

}

}
}

[解决办法]
dt.Rows.Add(dr.ItemArray);
这样试试。
[解决办法]
foreach (DataRow dr in ds.Tables[0].Rows)
{
string sTqType = ConvertUtil.ToString(dr["tq_type"]);
if (sTqType == "simple")
{
Repeater_Info.DataSource = ds;
Repeater_Info.DataBind();
}
else
{
DataRow row = dr;
dt.Rows.Add(row ); //试试
Repeater_jianda.DataSource = dt;
Repeater_jianda.DataBind();
}

[解决办法]
加这句
DataRow drNew=dt.NewRow();
drNew=dr;
dt.Rows.Add(drNew); //总是说该行已经属于被另一个表

你的dr已经属于别的DataTable,当然不能赋值给其他的DataTablel了
[解决办法]

探讨
引用:
dt.Rows.Add(dr.ItemArray);
这样试试。


也不行呀、、

[解决办法]
你应该为dt创建新的列新的行newDr,然后将dr里面的数据赋给newDr,然后加入dt

读书人网 >asp.net

热点推荐