在查詢datatable並將其保存到DataTable時避免重複的正確方法是什麼?我正在使用下面的模式,一旦表增長,它會變得非常容易出錯。我看了下面的提示。第一個copyToDataTable()
看起來不太適用,第二個對於我來說太複雜了。我想將下面的代碼拆分爲2個獨立的方法(首先構建查詢,第二個方法檢索DataTable)。也許如果我在查詢中避開匿名類型,這應該會更容易避免對所有列名進行硬編碼 - 但我有點不知所措。避免在DataTable查詢中重複並構建
Filling a DataSet or DataTable from a LINQ query result set 或 https://msdn.microsoft.com/en-us/library/bb669096%28v=vs.110%29.aspx
public DataTable retrieveReadyReadingDataTable()
{
DataTable dtblReadyToSaveToDb = RetrieveDataTableExConstraints();
var query = from scr in scrTable.AsEnumerable()
from products in productsTable.AsEnumerable()
where(scr.Field<string>("EAN") == products.Field<string>("EAN"))
select
new
{
Date = DateTime.Today.Date,
ProductId = products.Field<string>("SkuCode"),
Distributor = scr.Field<string>("Distributor"),
Price = float.Parse(scr.Field<string>("Price")),
Url = scr.Field<string>("Url")
};
foreach (var q in query)
{
DataRow newRow = dtblReadyToSaveToDb.Rows.Add();
newRow.SetField("Date", q.Date);
newRow.SetField("ProductId", q.ProductId);
newRow.SetField("Distributor", q.Distributor);
newRow.SetField("Price", q.Price);
newRow.SetField("Url", q.Url);
}
return dtblReadyToSaveToDb;
}
請分享執行'RetrieveDataTableExConstraints()' – ViRuSTriNiTy
這只是從DataTable中檢索DataTable的數據表模式retrieveReady .... = reader.GetSchemaTable(); +一些小的調整來消除PK,允許空值等。 – Turo
你真正的問題是什麼?你是什麼意思「避免重複」? –