簡體   English   中英

將 DataRow 從一個 DataTable 復制到另一個?

[英]copy DataRow from one DataTable to another?

我有一個非常具體的要求。 我有兩個數據表(兩個相同的模式)一個表(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); }

有沒有辦法解決這個異常。 我從許多不同的博客嘗試了許多不同的方法。 發現這個博客有一些最好的例子,想分享我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM