0

私の問題は、DGV コントロールのセルに値を表示することです。たとえば、次のようになります。

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.
4

2 に答える 2

1

1つの方法は、ID、Name、PriceA、PriceB、PriceCの5つの列を持つカスタムリストを作成することです。たとえば、データベースからデータを取得し、データをデータテーブルに入力した後、データテーブルを行ごとに処理して、タイプかどうかを確認できます。 datatablerowの列はタイプ'a'で、行をリストに追加し、PriceをリストのPriceA列に追加します。データテーブル全体を処理し、すべての行をリストに追加した後、リストをDatagridviewデータソースとして設定できます。 !!

于 2012-06-10T18:04:35.267 に答える
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
于 2012-06-10T18:15:08.920 に答える