gpt4 book ai didi

c# - 指定的转换对于 SQLDataReader 上的 GetFloat 无效

转载 作者:行者123 更新时间:2023-11-30 19:28:50 26 4
gpt4 key购买 nike

我有一个名为 EarlyHoursStartTime 的数据库列,它被声明为 float 。

然后我有一些代码,我用 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,这是什么问题?

最佳答案

根据 Mapping list

SQL Server data type CLR data type (SQL Server) CLR data type (.NET Framework)
float SqlDouble Double

SQL float 映射到 double 数据类型,因此您应该尝试使用 GetDouble 而不是 GetFloat

关于c# - 指定的转换对于 SQLDataReader 上的 GetFloat 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com