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

标签 c# sql-server winforms datagridview

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

现在我需要将记录从表加载到datagridview,我这样做了,但在我看来,这个IsApproved字段作为checkboxes可见,如下所示

enter image description here

在我的数据库表行中具有值IsApproved=true,然后在datagridview中选中复选框,并且在其中取消选中IsApproved=false thien复选框,如下所示见过。

所以现在我想以特殊的方式展示这一点

如果 IsApproved=true 则显示“已批准”以代替选中的复选框

如果IsApproved=false则显示UnApproved而不是未选中的复选框

我从 Bit datatype to enum type mapping from database to dataset in SQL Server 2008 获得了此功能 在 SQL 查询中,但在这个语句中它给我错误 关键字“FROM”附近的语法不正确。

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

我想要这个解决方案在 SQL 查询或 datagridview CellFormatting 中..

我需要你们的帮助来解决这个问题...提前致谢

最佳答案

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

此外,CAST 不是必需的,您应该将 CASE 结果分配给列名称。

这应该有效:

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

尽管在大多数情况下使用 CellFormatting 可能是更好的解决方案,但这当然可行。

关于c# - 如何在 datagridview C# 中格式化位数据类型列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722177/

相关文章:

winforms - 如何在 C# WinForm 应用程序中播放电影

c# - 表单应用中连接字符串的单一声明

C#与Flash通信

sql - 在 GROUP BY 后连接一个字段

mysql - 将SQL查询结果插入Excel

sql-server - 如何更改统计信息的排序规则或从 SQL Server 中的数据库排序规则中删除其依赖项?

c# - 寻找在 WinForms 应用程序中使用自定义字体定义的最佳方式

c# - 如何使用 OpenSSL.net 创建证书

c# - 运行时调试不起作用。

c# - 如何找到下一个 2 :00 am in . 网的确切日期