c# - 为什么 'IsDBNull' 对于数据库中可为 NULL 的字段返回 false?

标签 c# mysql sqldatareader

我使用“IDataReader”和简单查询从数据库读取数据

SELECT * FROM mytable ORDER BY Id

问题在于调用

reader.IsDBNull(i)

即使对于可为空的字段也返回“false”...

并调用

reader.GetValue(i)

如果这些字段中的值为 NULL,则返回 0。

请问如何正确获取NULL?

附注

我相信我在配置连接字符串来访问数据时出了问题,所以这里是:

<add key="ConnectionString.MySql.Data.DataProvider.MySqlDataProvider.MySql"
    value="server=***; user id=***; pwd=***; database=***; Convert Zero Datetime=true;"
    />

附注是的,我使用 MySql,v.5.1

P.P.S。我的坏处:使用了来自错误数据库的数据,该数据实际上具有 0 值。请删除该问题。

最佳答案

return 'false' even for nullable fields...

reader.IsDBNull 如果该字段的记录为 null,则返回 true,但它不会判断数据类型是否可为 null。

关于c# - 为什么 'IsDBNull' 对于数据库中可为 NULL 的字段返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14994633/

相关文章:

mysql - 如何获取特定列中非 NULL 行的百分比?

php - 无法使用 cakephp 显示数据库中的图像

mysql - Reader 关闭时读取无效 (VB.Net)

c# - SqlDataReader "Enumeration yielded no results"

c# - asp.net C# 数据库表列列表

c# - 使用 C# 从字符串中提取数字

c# - 简单的 C# 登录,尝试 3 次

c# - 每个实体的通用存储库或特定存储库?

mysql - 可以使用分析/窗口函数来查找以其他词开头的词的子集吗?

c# - 如何避免向数据表添加重复行