1. 程式人生 > >C#兩個DataTable拷貝問題:該行已經屬於另一個表的解決方法

C#兩個DataTable拷貝問題:該行已經屬於另一個表的解決方法

一、DataTable.Rows.Add(DataRow.ItemArray);

二、DataTable.ImportRow(DataRow)

三、設定DataTable的tablename,然後.Rows.Add

第一種方法在專案中用到,確實好用!兩種方式都可以自己選擇吧,沒有什麼好壞

----------------------------------------------------------------------------------------------------------------

要把資料從一個DataTable複製到另一個DataTable,執行結果出現c#錯誤:

該行已經屬於另一個表。

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。

異常詳細資訊: System.ArgumentException: 該行已經屬於另一個表。

錯誤程式碼如下:


DataTable sourceTable = null;

sourceTable = GetTest(tableName);

if (sourceTable == null)

{

return null;

}

DataTable retTable = new DataTable();

foreach (DataRow dr in sourceTable.Rows)

{

if (dr["主鍵"].ToString() != "")

{

retTable.Rows.Add(dr);

}

}

後經修改,除錯通過,修改後程式碼如下:


      DataTable sourceTable = null;

sourceTable = GetTest(tableName);

if (sourceTable == null)

{

return null;

}

DataTable retTable = new DataTable();

foreach (DataRow dr in sourceTable.Rows)

{

if (dr["主鍵"].ToString() != "")

{

retTable.Rows.Add(dr.ItemArray);

}

}