我在sqlite数据库中有一个字段,我们将其称为field1
,在该字段上,我尝试遍历每条记录(有上千条记录)。字段类型为string
。前四行中的field1
值如下:
DEPARTMENT
09:40:24
PARAM
350297
这是一些用于遍历每一行并显示值的简单代码:
while (sqlite_datareader.Read())
{
strVal = sqlite_datareader.GetString(0);
Console.WriteLine(strVal);
}
前三个值正确显示。但是,当到达数字条目350297时,它会出错,但.getString()
方法具有以下异常
An unhandled exception of type 'System.InvalidCastException' occurred in System.Data.SQLite.dll
我已经尝试过将其转换为字符串以及其他一些东西。但是我无法弄清为什么会这样。现在,我被迫使用类型为getValue
的object
,然后转换回字符串。但我想弄清楚为什么getString()
在这里不起作用。
有什么想法吗?
编辑:这是我目前处理该问题的方式:
object objVal; // This is declared before the loop starts...
objVal = sqlite_datareader.IsDBNull(i) ? "" : sqlite_datareader.GetValue(i);
if (objVal != "")
{
strVal = (string)objVal;
}