asp.net - 在 ASP.NET 中处理 DBNull 和 null

标签 asp.net mysql database null dbnull

重写这些(错误)行的最佳方法是什么?

bool? result = dr["result"] == DBNull.Value ? null : Convert.ToInt32(dr["result"]);

...和...

dr["result"] = result ?? DBNull.Value;

两者都不编译。

我正在使用 MySql 连接器,它不允许我设置,例如 dr["result"] = null; 这是我第一次尝试的。

是否有更合适的 .NET 数据类型来表示 MySql 可为空 tinyint(1)

最佳答案

怎么样:

     dr["Hello"] = (object)result ?? DBNull.Value;
     bool? result = dr["result"] == DBNull.Value ? null : (bool?)(Convert.ToInt32(dr["result"]) != 0);

您的建议无法编译的原因是三元运算符 ?: 的两个替代项必须具有相同的类型。 DBNull.Value 显然与 bool? 不是同一类型。但是,将 bool? 转换为 object 会使它们成为同一类型。类似的规则适用于第二行。

关于asp.net - 在 ASP.NET 中处理 DBNull 和 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373455/

相关文章:

php - 为什么PHP在mysql表数据库中插入变量名

Mysql尾部修剪正则表达式剪切字符串

c# - 如何使用 ext.net 在 asp.net c# 中创建 Crystal 报表?

c# - 在一页中使用同一个用户控件两次会出现名称冲突问题

c# - set 和 setCookie 方法有什么区别

mysql - 如何在 MySQL 中将 ipv4 字符串转换为 varbinary?

java - 我正在为以 Java/Python 为中心的组织寻找图形数据库

sql - 在 blob 上选择不同的

mysql - 检查给定日期是否在夏令时或不在 Mysql 中

c# - ASP NET MVC C# - .Model 是一个属性,但它像一个类型一样使用