2012-06-10 34 views
0

我的問題顯示SQL結果由在顯示值插入DGV控制的細胞,例如:與條件DGV VB.NET

MySQL的表:

ID - Name  - Price - Type 
1 Mouse Pad 2.85$ - a 
2 Keyboard 10.50$ - a 
3 Hard Disk 80.00$ - c 
4 Web Cam  15.02$ - b 
5 Printer  45.62$ - c 
6 DVD Writer 20.00$ - b 

我DataGridView控件:

ID - Name  - PriceA - PriceB - PriceC 

欲顯示結果與這些條件[VB.NET sintax]濾波:

If SQLcolumn(Type) = a Then, show the price into PriceA into the DGV. 
If SQLcolumn(Type) = b Then, show the price into PriceB into the DGV. 
If SQLcolumn(Type) = c Then, show the price into PriceC into the DGV. 
+0

另一種解決方案 –

回答

1

一種方法是創建一個包含5列的自定義列表:ID,名稱,PriceA,PriceB,PriceC ,並且在從數據庫獲取數據並將數據填充到數據表中之後,您可以逐行處理數據表並檢查你的datatablerow的Type列是否爲Type'a',然後將該行添加到列表中,並將Price添加到列表的PriceA列中,並在完成整個DataTable並將其所有行添加到列表中後,可以設置List作爲Datagridview數據源!

1

你可以用SQL PIVOT運算符做到這一點:

SELECT ID , 
     Name , 
     [a] AS [TypeA] , 
     [b] AS [TypeB] , 
     [c] AS [TypeC] 
FROM tbl PIVOT (SUM(Price) FOR TYPE IN (a, b, c)) AS pvt