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);
}
}