DataTable dt = new DataTable();
//然后通过sql语句绑定到dt
DataTable dt2 = new DataTable();
dt2 = dt.Clone();
for (int i = 0; i < 1; i++)
{
dt2.ImportRow(dt.Rows[1]);
}
http://www.keleyi.com/blog/a/baa77f0271fb41a4ae15f230420b76bd.html
使用DataTable 的Rows.Add()方法添加另外一个DataTable的行是,会出现异常”该行已经属于另一个表“。
解决办法是使用DataTable的ImportRow()方法。
以下是示例代码:
//建立源表
DataTable m_source = new DataTable();
m_source.Columns.Add("ID");
m_source.Columns.Add("url");
m_source.Columns.Add("title");
m_source.Rows.Add("1", "http://www.keleyi.com/blog/", " 柯乐义的博客");
m_source.Rows.Add("2", "http://keleyi.com/", "可乐义");
//复制目标表
DataTable m_object = new DataTable();
m_object = m_source.Clone();
int m_rowCount = m_source.Rows.Count;
for (int i = 0; i < m_rowCount; i++)
{
//m_object.Rows.Add(m_source.Rows[i]);//出现异常:该行已经属于另一个表。
m_object.ImportRow(m_source.Rows[i]);//正确
}
//显示目标表(ASP.NET代码)
for (int i=0; i < m_rowCount; i++)
{
Response.Write(m_object.Rows[i][0].ToString() + " "
+ m_object.Rows[i][1].ToString() + " " + m_object.Rows[i][2].ToString() + "
");
}