您的位置:首页 > 其它

复制DataTable时出现"该行已经属于另一个表"异常的解决办法

2015-08-27 23:29 465 查看
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() + "

");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: