【问题标题】:how to format bit datatype column in datagridview c#?如何在datagridview c#中格式化位数据类型列?
【发布时间】:2015-10-21 17:11:51
【问题描述】:

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

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

在我的数据库表行中具有值IsApproved=true 然后在datagridview 复选框被选中,而IsApproved=false thien 复选框未被选中。

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

如果 IsApproved=true 则显示 Approved 代替选中的 checkbox

如果 IsApproved=false 则显示 UnApproved 而不是 unchecked 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 中使用此解决方案..

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

【问题讨论】:

    标签: c# sql-server winforms datagridview


    【解决方案1】:

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

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

    这应该可行:

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

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

    【讨论】:

    • 这适用于我刚才检查的 SQL。你对细胞形成有什么想法吗??
    猜你喜欢
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多