1. 程式人生 > 其它 >C# 將多個DataTable新增到指定的DataSet中

C# 將多個DataTable新增到指定的DataSet中

如何將多個DataTable新增到指定的DataSet中


事件起因:從資料庫中,查詢多個dataTable,現在想一下子返回多個table,所以就想到用DATASET,遇到下面的兩個現象,現在記錄下,做個參考。


DataSet ds = new DataSet(); // 建立資料集
DataTable dt1 = BIZ.GetSalesInfo(); // 獲取出售資訊表
DataTable dt2 = BIZ.GetStockInfo(); // 獲取倉庫資訊表

現象一:用ds.Tables.Add()方法,老是提示"Table"已經存在,

ds.Tables.Add(dt1); // 出錯,dt1已經屬於另外一個DataSet;

解決對策:

DataTable是通過引用方式使用的,所以一個table不能新增到另一個dataset中。

開始是用最原始的建臨時表的方法,後來發現發現table有copy方法,這樣就省事多了,程式碼可以寫成:

DS.Tables.Add(dt1.Copy())

這樣就OK了!


現象二:已經存在DataTable;

ds.Tables.Add(dt2.copy());//新增第二個Table時就出錯了,已經存在DataTable;,於是第一種處理辦法,不行,還得找其他辦法


給table 取名再插 於是程式碼便成這樣
dt1.TableName = " dt1n " ;
ds.Tables.Add(dt1);
dt2.TableName = " dt2n " ;
ds.Tables.Add(dt2);

經過這樣改造,就行了