指定的强制转换无效 - SQL float到C#double

时间:2012-08-01 19:40:20

标签: c# .net sql-server-2008

在我的c#代码中,我有一个double,我试图将其设置为我的SQL Management 2008 R2数据库中的float类型的值(对应于c#中的double,对吧?)。当我使用这种语法时

double x = (double)reader["column1"]; //reader is SqlDataReader object

我收到错误“指定的强制转换无效”。

是什么给出的?

3 个答案:

答案 0 :(得分:6)

您可以直接GetDouble

reader.GetDouble(reader.GetOrdinal("column1"))

答案 1 :(得分:6)

我建议使用SqlDataReader对象提供的辅助类...

double dbl = reader.GetDouble(reader.GetOrdinal("DoubleColumn"));

如果列可能为空,您应该考虑该...

double dbl = (reader["DoubleColumn"] != DBNull.Value ? dr.GetDouble(dr.GetOrdinal("DoubleColumn")) : 0.0);

答案 2 :(得分:3)

使用Convert.ToDouble方法:

double x = Convert.ToDouble(reader["column1"]);