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_Types」テーブルを参照する外部キー列である場合Buy_Sellは、クエリを次のように変更します (結合を追加します)。

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 に答える