Reputation: 1830
I have my mysql query selected fields (item_code, item_name, item quantity, item_selltype, item_selldetail) but some of these fields are variants.
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)
I suppose that the query returns:
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 control looks so:
Code, Name, Inv, Unit Price, Box Price, Pound Price, Gallon Price
then I need this result in 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
I searched in many ways some code that can do this but I can not succeed, help..
Upvotes: 1
Views: 766
Reputation: 2620
I think you need a translator object. Get your data from the database, and use it to populate a List<>
of something like this:
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();
}
}
}
Then set the DataSource
of the grid to that List<Item>
.
Upvotes: 1