2012-02-23 32 views
1

私のmysqlクエリで選択されたフィールド(item_code、item_name、item quantity、item_selltype、item_selldetail)を持っていますが、これらのフィールドのいくつかは変種です。DB VB.NETからDatagridviewにデータを入力

Dim sqlConn As String = ("SELECT item_code, item_name, item_quantity, item_selltype, item_selldetail FROM qa_items") 
Dim objDataAdapter As New MySqlDataAdapter(sqlConn, objConn) 

私は、クエリを返すこととします

item_code, item_name, item_quantity, item_selltype, item_selldetail 
01   Ball  5    unit   10.52 
02   Keyoard 10    unit   50.00 
03   Gasoline 5    gallon   70.45 

DataGridViewコントロールはそうなります

Code, Name, Inv, Unit Price, Box Price, Pound Price, Gallon Price 

その後、私はDataGridViewの中でこの結果を必要とする:

Code, Name, Inv, Unit Price, Box Price, Pound Price, Gallon Price 
01 Ball  5 10.52  0   0   0 
02 Keyboard 10 50.00  0   0   0 
03 Gasoline 5 0   0   0   70.45 

私が検索多くの点でいくつかのコードthaこれを行うことはできますが、私は成功することはできません。

答えて

1

翻訳者オブジェクトが必要だと思います。データベースからデータを取得し、このような何かのList<>を移入するためにそれを使用します。

class Item 
{ 
    public int Code { get; private set; } 
    public string Name { get; private set; } 
    public int Inv { get; private set; } 
    [DisplayName("Unit Price")] 
    public double UnitPrice { get; private set; } 
    [DisplayName("Box Price")] 
    public double BoxPrice { get; private set; } 
    [DisplayName("Pound Price")] 
    public double PoundPrice { get; private set; } 
    [DisplayName("Gallon Price")] 
    public double GallonPrice { get; private set; } 

    public Item(int item_code, string item_name, int item_quantity, string item_selltype, double item_selldetail) 
    { 
     Code = item_code; 
     Name = item_name; 
     Inv = item_quantity; 
     UnitPrice = 0; 
     BoxPrice = 0; 
     PoundPrice = 0; 
     GallonPrice = 0; 
     switch (item_selltype) 
     { 
      case "unit": UnitPrice = item_selldetail; break; 
      case "box": BoxPrice = item_selldetail; break; 
      case "pound": PoundPrice = item_selldetail; break; 
      case "gallon": GallonPrice = item_selldetail; break; 
      default: throw new InvalidExpressionException(); 
     } 
    } 
} 

次に、そのList<Item>に、グリッドのDataSourceを設定します。

関連する問題