如何在datagridview c#中格式化bit数据类型列?

时间:2015-07-30 11:09:47

标签: c# sql-server winforms datagridview

我在IsApproved中有一个名为bit的列,其数据类型为tblUser(SQL Server 2008)

现在我需要将记录从表格加载到datagridview并且我这样做但在我看来,IsApproved字段显示为checkboxes

enter image description here

在我的数据库表格行IsApproved=true中,然后在datagridview复选框中,选中IsApproved=false thien复选框未选中,如图所示。

所以现在我想以特别的方式展示

如果IsApproved=true,则显示已批准,代替已选中的checkbox

如果IsApproved=false则显示未批准而不是未选中checkbox

我从Bit datatype to enum type mapping from database to dataset in SQL Server 2008获得了此功能 在SQL查询中,但在此语句中,它给出了Incorrect syntax near the keyword 'FROM'.

的错误
SELECT CASE WHEN IsApproved = CAST(0 AS BIT) THEN 'UnApproved'  ELSE 'Approved'  FROM tblUser

我想在SQL Query或datagridview CellFormatting中使用此解决方案..

我需要你的帮助才能解决这个问题......提前谢谢

1 个答案:

答案 0 :(得分:1)

SQL查询失败的原因是您需要END您的CASE语句。

此外,不需要CAST,您应该将CASE结果分配给列名。

这应该有效:

SELECT IsApproved = (CASE WHEN IsApproved = 0 THEN 'UnApproved' ELSE 'Approved' END) FROM tblUser

尽管在大多数情况下使用CellFormatting可能是更好的解决方案,但这肯定有效。