C# 將多個DataTable新增到指定的DataSet中
阿新 • • 發佈:2021-08-05
如何將多個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);
經過這樣改造,就行了