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


            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() + "
");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值