为什么'IsDBNull'对于DB中可以为NULL的字段返回false?

时间:2013-02-21 04:35:57

标签: c# mysql sqldatareader

我使用'IDataReader'和简单查询

从数据库中读取数据
SELECT * FROM mytable ORDER BY Id

问题在于呼叫

reader.IsDBNull(i)

即使是可以为空的字段,也要返回'false'...

并致电

reader.GetValue(i)
如果这些字段中的值为NULL,则

返回0.

请告知如何正确获取NULL?

P.S。

我认为配置连接字符串以访问数据时出了问题,所以这里是:

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

P.S。是的,我使用MySql,v.5.1

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

1 个答案:

答案 0 :(得分:2)

  

即使是可以为空的字段,也要返回'false'...

如果针对该字段的记录是reader.IsDBNull,则

null返回true,它不会判断数据类型是否可为空。