MySQLDataReader在c#中检索Null值问题

Boa*_*rdy 8 c# mysql mysqldatareader

我目前正在开发一个将导出MySQL数据的C#项目.导出是服务器中的任何数据库,所以我不会知道表中的字段和数据类型,我不知道表中的字段是否允许空值.

在测试期间,我发现导出工作正常,但如果字段允许null,当mysql数据读取器到达行为null时,它会显示错误SqlNullValueException,data为null.

我已经尝试过,if (reader.getString(field) == null) {}但它仍然显示错误.

如何处理数据库中的Null值.

感谢您的任何帮助,您可以提供.

Del*_*ted 20

您需要在阅读器中明确测试null,以便:

if (!reader.IsDbNull(field)) {
    var value = reader.GetString(field);
    // ... do stuff here ...
}
Run Code Online (Sandbox Code Playgroud)

  • 取决于读者实现/辅助方法.基本接口IDataReader只接受整数列索引,这是正确的.但是MySqlDataReader有重载来获取一个字符串字段名称,它只是一个reader.GetOrdinal查找. (2认同)