0

我有以下数据库表>>

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);
}

代码中应该有哪些变化?

4

1 回答 1

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);
}
于 2013-03-20T12:24:46.713 回答