【发布时间】:2012-12-12 12:26:28
【问题描述】:
我有一个名为 EarlyHoursStartTime 的数据库列,它被声明为浮点数。
然后我有一些代码,我用 DataReader 遍历整个表
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (myReader.Read())
{
cmdInsertLocation.Parameters.AddWithValue("@EarlyHoursStartTime", myReader.GetFloat(44)); <- Error here
}
上面的 AddwithValues 行出现错误。
“指定的转换无效。”
当发生这种情况时,myReader.GetValue(44) 显示的值为 0.0。
我尝试了各种方法来解决这个问题,比如在以下情况下使用默认值:
if (Convert.ToString(myReader.GetValue(44)) == "0.0")
但这应该是不必要的,无论如何它都不起作用。
为什么当值为 0.0 时我会收到无效的强制转换异常? datareader读入的数据库字段是Float,有什么问题?
【问题讨论】:
-
我认为你应该使用
GetDouble等同于SQL float is double -
@V4Vendetta 似乎已经解决了这个问题。您想将其放入答案中以便我将其标记为正确吗?
标签: c# asp.net sqldatareader