2016-06-19 32 views
0

如何將雙數組存儲在DataTable的一列(字段)中?將數組存儲在DataTable中

我想要有兩個數據字段保持連續,第一個是一個整數是產品的ID,第二個是一個雙數組,其中包含產品所有不同的價格(進化的產品價格)。如何將這些產品的365個價格存儲在同一行中。也許我應該使用數組price

dtPriceOfProduct.Rows.Add(product_id, price) 

其中price是所有的價格與product_id的產品能夠具有一個陣列。我想要1x5,000行不是365x5,000。

目前我儲存的數據是這樣

int product_id; 
double[] price = new double[]; 

,我創造我的數據表中的新行對同一產品的每個價格

foreach(double price_data in price) 
{ 
    dtPriceOfProduct.Rows.Add(product_id, price_data) 
} 
+0

能否請您澄清這一行? '我如何將這些產品的365個價格存儲在同一行中'所以你想用'365列'和一行創建一個表?或者你想列出整個陣列在一個單元格? –

回答

0

我怎麼可以在陣列存儲該產品放入同一行。

IMO你想達到的不是一個好主意。但是,如果你堅持要求仍然想要繼續這種設計,我建議你使用一個字典,其中的項目id作爲鍵和數組作爲值*。然後在保存到所述DataTable之前序列化所述字典。

*可能是這樣的事情?

Dictionary<int, double[]> priceHistory = new Dictionary<int, double[]>(); 
priceHistory.Add(id, price); 

的序列化/反序列化,請參閱here

+0

如果這是一個壞主意,你建議我什麼?我必須使用datable,因爲之後,我在ReportViewer中使用數據來顯示價格的演變 –

+0

我現在可以提出的建議是在'DataTable'上做旋轉(即擁有多個具有相同ID且可能不同日期和價格的行。 )您可能會看到[this](http://stackoverflow.com/questions/11624676/database-pivoting-what-is-the-purpose)以獲取更多信息。我也相信這也可以用於DataTables。你可能不得不查詢你的報告,但它基本上是一樣的。 –

+0

你應該真的在爲你的價格使用相關的表格。谷歌搜索將很容易找到大量的例子和建議。這裏有一些讓你開始的事情:https://chsakell.com/2013/06/22/ado-net-working-with-dataset-datatable-datacolumn-datarow-and-datarelations/ –