datarow过滤值到数据表

时间:2012-04-16 09:45:26

标签: c# asp.net datarow

我想将数据行过滤器值插入datatable,但它返回以下错误“此行已经属于另一个表”。请帮我解决这个错误。

这是我的部分代码:

  for (int j = 0; j < ListBox1.Items.Count; j++)
                {
                    DataView DV = new DataView();
                    DV = DS1.DefaultView;
                    DV.RowFilter = "fldemployee='" + ListBox1.Items[j].Text + "' and fldassigndate = '04-07-2012'";
                    if (DV.Count > 0)
                    {
                        DataTable table = DV.ToTable("sp_getallattendancesetup");
                        DataRow row = table.Rows[0];
                        DT.Rows.Add(row);

                    }

                }

                GridView1.DataSource = DT;
                GridView1.DataBind();

1 个答案:

答案 0 :(得分:0)

您可以使用ImportRow

DT.Rows.ImportRow(row);
  

来自msdn的信息:调用NewRow使用添加一行到表   现有的表模式,但具有行的默认值,和   将DataRowState设置为Added。调用ImportRow会保留   现有DataRowState以及行中的其他值。如果   作为参数传递的DataRow处于分离状态,它是   被忽略了,没有抛出任何异常。

     

新行将添加到数据表的末尾。

     

如果新行违反约束,则不会将其添加到数据中   表

     

您可以使用DataTable.Rows.Find和获取新行的索引   DataTable.Rows.IndexOf。有关更多信息,请参阅DataRowCollection和Rows   信息。

参考here