我的mysql查询选择了字段(item_code,item_name,item quantity,item_selltype,item_selldetail),但其中一些字段是变体。
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
我在很多方面搜索了一些可以做到这一点的代码,但我无法成功,帮助..
答案 0 :(得分: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();
}
}
}
然后将网格的DataSource
设置为List<Item>
。