Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免这种异常?_C#_Sql_Sqlite - Fatal编程技术网

C# 如何避免这种异常?

C# 如何避免这种异常?,c#,sql,sqlite,C#,Sql,Sqlite,我有一个sqlite数据库和一个表,其中有一个列PIN作为文本,它是空的。 当我从数据库中获取它,并试图将其转换为字符串时,它会给我带来一个异常,当转换一个数字时,该值必须小于无穷大……原因是什么?在像sqlite这样的数据库中,空字符串和null是两种不同的东西。您可能正试图将PIN码转换为int,或其他整数类型。如果PIN字段为null或DBNull,则此转换将失败,并给出您列出的异常。使事情进一步复杂化,null!=DBNull.Value,这是数据库查询可能返回的值 要检查这一点,您需要

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

在像sqlite这样的数据库中,空字符串和null是两种不同的东西。您可能正试图将PIN码转换为
int
,或其他整数类型。如果PIN字段为null或DBNull,则此转换将失败,并给出您列出的异常。使事情进一步复杂化,
null!=DBNull.Value
,这是数据库查询可能返回的值

要检查这一点,您需要对照
DBNull.Value
检查PIN字段,并仅在检查后强制转换

见:


请参阅:

具体是哪种异常?也请包括一些代码。