我有有一欄Xyz
一個表,並在SQL Server bit
數據類型2008位數據類型來枚舉類型映射從數據庫SQL Server中的數據集2008
我通過獲取從表中的值數據適配器,我將其存儲在DataSet
和DataGridView
將顯示來自DataSet
在GridView的內容,Xyz
列,有/無勾號顯示check_box但我想它顯示爲買入/作爲文本出售而不是複選框。
我有有一欄Xyz
一個表,並在SQL Server bit
數據類型2008位數據類型來枚舉類型映射從數據庫SQL Server中的數據集2008
我通過獲取從表中的值數據適配器,我將其存儲在DataSet
和DataGridView
將顯示來自DataSet
在GridView的內容,Xyz
列,有/無勾號顯示check_box但我想它顯示爲買入/作爲文本出售而不是複選框。
您可以通過2種方法之一處理它。
1)而不是返回數據,請在您的查詢中進行強制轉換,使其根據值返回Buy/Sell作爲字符串。如果你的網格是隻讀的,這隻會真的很好。如果您需要添加/編輯數據,將您的買入/賣出轉換爲一點點並且強制用戶只能進入買入/賣出會變得麻煩。如果您需要添加/編輯數據,您可能會想要使用方法2。
例如假設你的列名叫做BuySell是類型位的
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2)您必須對在DataGridView和設置您的列手動關閉「的AutoGenerateColumns」。如果您的網格是隻讀的,我會爲您的買入/賣出欄添加一個映射到您的位值的文本列。然後在網格的Cell_Formatting事件中,根據該位更新值。喜歡的東西下面:
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgv.Columns[e.ColumnIndex].Name == "buysell")
{
if (e.Value != null)
{
if (e.Value.ToString() == "1")
{
e.Value = "Sell";
}
else
{
e.Value = "Buy";
}
}
else
{
e.Value = "Buy";
}
}
}
如果電網需要可編輯,設置表示與displaymember和valuemember您的買/賣值的數據表。將其作爲組合框列的數據源。現在,加載數據將在組合框中正確顯示Buy/Sell,並且在從下拉列表中選擇一個值時,它將用正確的位值填充基礎數據源。
你可以給第一種方式示例查詢..? – sarathprasath
用示例查詢更新了答案 – UWSkeletor
謝謝你......真的很有幫助... – sarathprasath