日期:2014-05-17  浏览次数:20455 次

该行已经属于另一个表...怎么解决啊
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