我有以下数据库表>>
TradeNo | Buy_Sell | Trade_Qty | Market_Price
205412 1 50 300
205487 2 30 350
208754 1 20 200
在此表中有专栏Buy_Sell。买= 1,卖= 2
当我绑定网格时,值显示为原样。
但是,我想在网格中将它们显示为>
TradeNo | Buy_Sell | Trade_Qty | Market_Price
205412 Buy 50 300
205487 Sell 30 350
205487 Buy 20 200
我该怎么做?
我只是使用以下代码>
绑定网格try
{
da=new SqlDataAdapter("Select TradeNo, Buy_Sell,TradeQty,Market_Price from tradeFile",conn);
DataSet ds=new DataSet();
da.Fill(ds);
gvTrade.dataSource=ds.Tables[0];
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
代码中的变化应该是什么?
答案 0 :(得分:0)
如果Buy_Sell
是引用“Buy_Sell_Types”表的外键列,请将查询更改为以下内容(添加联接):
SELECT TradeNo, Buy_Sell_Types.Name, TradeQty, Market_Price
FROM tradeFile
JOIN Buy_Sell_Types ON tradeFile.Buy_Sell = Buy_Sell_Types.PrimaryKey
否则,您可以使用LINQ转换代码中的数据:
try
{
da=new SqlDataAdapter("SELECT TradeNo, Buy_Sell, TradeQty, Market_Price FROM tradeFile", conn);
DataSet ds=new DataSet();
da.Fill(ds);
gvTrade.dataSource = ds.Tables[0].AsEnumerable()
.Select(d => new
{
TradeNo = d.Field<int>("TradeNo"),
Buy_Sell = d.Field<int>("Buy_Sell") == 1 ? "Buy" : "Sell",
TradeQty = d.Field<int>("TradeQty"),
Market_Price = d.Field<double>("MarketPrice")
});
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}