将DataRow从一个DataTable复制到另一个?

问题描述

| 我有一个非常具体的要求。我有两个数据表(都是相同的架构),一个表(aqTable)有2行,另一个表(rapidsTable)有5行。我需要检查aqTable中的那2行是否存在于RapidsTable的那5行中,如果那两行存在于RapidsTable中,则将剩余的(差异)3行复制到aqTable中。 我以这种方式尝试过,但是当它循环到第三行时会引发异常“位置2没有行”,因为其中一个表中的行不超过2行。
if (rapidsTable.Rows.Count > aqTable.Rows.Count)
{
try
  {
    int aqRow = 0; rows = 0;
    int rCount = rapidsTable.Rows.Count;
    for (int rRow = 0; rRow < rCount; rRow++)
    {
      if (aqTable.Rows.Count == 0)
      {
         DataRow row = aqTable.NewRow();
         row.ItemArray = rapidsTable.Rows[aqRow].ItemArray;
         rowStr += rapidsTable.Rows[rRow][0].ToString() + \",\";
         aqTable.Rows.Add(row); rows++;
      }
      else
      {
         string str = aqTable.Rows[aqRow].ToString();
         if (aqTable.Rows.ToString() == null || aqTable.Rows.ToString() == \"\") 
         { }
         if ((aqTable.Rows[aqRow][1].ToString() == rapidsTable.Rows[rRow][1].ToString()) &&
             (aqTable.Rows[aqRow][2].ToString() == rapidsTable.Rows[rRow][2].ToString()) &&
             (aqTable.Rows[aqRow][3].ToString() == rapidsTable.Rows[rRow][3].ToString()))
         { }
         else
         {
             DataRow row = aqTable.NewRow();
             row.ItemArray = rapidsTable.Rows[aqRow].ItemArray;
             rowStr += rapidsTable.Rows[rRow][0].ToString() + \",\";
             aqTable.Rows.Add(row); rRow = rRow - 1; rows++;
          }
      }
     aqRow++;
    }  
catch (Exception ex)
{ throw new Exception(\"R>AQ Copy: \" + ex.Message); }
有没有办法解决这个异常。我从许多不同的博客尝试了许多不同的方法。发现这个博客有一些最好的例子,以为可以分享我的问题。     

解决方法

我想这就是你要找的 http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q308909     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...