我在IsApproved
中有一个名为bit
的列,其数据类型为tblUser
(SQL Server 2008)
现在我需要将记录从表格加载到datagridview
并且我这样做但在我看来,IsApproved
字段显示为checkboxes
在我的数据库表格行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中使用此解决方案..
我需要你的帮助才能解决这个问题......提前谢谢
答案 0 :(得分:1)
SQL查询失败的原因是您需要END您的CASE语句。
此外,不需要CAST,您应该将CASE结果分配给列名。
这应该有效:
SELECT IsApproved = (CASE WHEN IsApproved = 0 THEN 'UnApproved' ELSE 'Approved' END) FROM tblUser
尽管在大多数情况下使用CellFormatting可能是更好的解决方案,但这肯定有效。