我有有一个列的表Xyz
,它有bit
在SQL Server 2008中的数据类型。
我通过数据适配器正从表中的值,我将其存储在DataSet
和DataGridView
会显示从内容DataSet
在GridView,列Xyz
,具有check_box /无滴答显示,但我想将其显示为买入/卖出的文本,而不是复选框。
我有有一个列的表Xyz
,它有bit
在SQL Server 2008中的数据类型。
我通过数据适配器正从表中的值,我将其存储在DataSet
和DataGridView
会显示从内容DataSet
在GridView,列Xyz
,具有check_box /无滴答显示,但我想将其显示为买入/卖出的文本,而不是复选框。
你可以在1 2的方式来处理它。
1),而不是返回的数据作为位,做铸造在查询使其返回买/卖基于价值的字符串。 如果是只读的网格这样才真正运作良好。 如果你需要可以添加/编辑数据,它会变得一团糟转换您的买入/卖出回位和强制用户只能选择买/卖。 你可能会想,如果你需要添加/编辑数据使用方法2。
例如,假设您的列名叫做BuySell是类型位
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2)你必须手动关闭“的AutoGenerateColumns”上的DataGridView和设置您的列。 如果您的网格是只读的,我会为映射到你的位值的买入/卖出列中添加文本列。 然后在网格中的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您的买/卖值的数据表。 绑定,作为数据源的组合框列。 现在正在加载数据将正确显示买入/卖出的组合框和新行,当您选择从下拉它将填充您的底层数据源具有正确位的值。