![](/img/trans.png)
[英]SQL CE in WP7 Mango - Datatype mapping from SQL Server 2008
[英]Bit datatype to enum type mapping from database to dataset in SQL Server 2008
我有一個具有Xyz
列的表,並且在SQL Server 2008中具有bit
數據類型。
我通過數據適配器從表中獲取值,並將其存儲在DataSet
並且DataGridView
將顯示DataSet
的內容
在GridView,列Xyz
,有/無蜱一個check_box顯示,但我想將其顯示為買入/賣出的文本,而不是復選框。
您可以用2種方式之一來處理它。
1)而不是一點點返回數據,而是在查詢中進行強制轉換以使其根據值作為字符串返回Buy / Sell。 僅當您的網格為只讀時,這才真正有效。 如果您需要能夠添加/編輯數據,將您的“購買/出售”轉換回一點並強制用戶只能輸入“購買/出售”會很麻煩。 如果您需要添加/編輯數據,則可能要使用方法2。
例如,假設您的列名稱稱為BuySell,且類型為bit
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";
}
}
}
如果您的網格需要可編輯,請設置一個數據表,該數據表使用顯示成員和值成員代表您的買/賣值。 將其綁定為組合框列的數據源。 現在,加載數據將在組合框中正確顯示“買/賣”,並且當您從下拉列表中選擇一個值時,對於新行,它將使用正確的位值填充基礎數據源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.