【问题标题】:copy DataRow from one DataTable to another?将 DataRow 从一个 DataTable 复制到另一个?
【发布时间】:2011-05-25 05:15:59
【问题描述】:

我有一个非常具体的要求。我有两个数据表(两个相同的模式)一个表(aqTable)有 2 行,另一个(rapidsTable)有 5 行。我需要检查 aqTable 中的这 2 行是否存在于 rapidsTable 的这 5 行中,如果这两行存在于 rapidsTable 中,则将剩余(差异)3 行复制到 aqTable。

我以这种方式尝试过,但是当它循环到第 3 行时会引发异常“位置 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); }

有没有办法解决这个异常。我从许多不同的博客尝试了许多不同的方法。发现这个博客有一些最好的例子,想分享我的问题。

【问题讨论】:

  • 使用 4 个空格来缩进你的代码

标签: datatable


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2012-08-26
    • 2011-06-21
    • 2013-08-26
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2014-11-10
    相关资源
    最近更新 更多