如何避免这种异常?

时间:2014-02-25 00:04:57

标签: c# sql sqlite

我有一个sqlite数据库和一个表,其中我有一个列PIN作为TEXT,它是空的。 当我从数据库中获取它并尝试转换为字符串时它会给我一个异常,当转换数字时,该值必须小于无穷大......这是什么原因?

1 个答案:

答案 0 :(得分:0)

在像sqlite这样的数据库中,空字符串和null是两回事。看起来您可能正在尝试将PIN转换为int或其他整数类型。如果PIN字段为空或DBNull,则此强制转换将失败,从而给出您列出的异常。更复杂的是null != DBNull.Value,这是您的数据库查询可能返回的内容。

要检查此项,您需要针对DBNull.Value检查PIN字段,并在检查后进行投射。

请参阅:DBNull Class

请参阅:A similar SO question