在我的c#代码中,我有一个double,我试图将其设置为我的SQL Management 2008 R2数据库中的float类型的值(对应于c#中的double,对吧?)。当我使用这种语法时
double x = (double)reader["column1"]; //reader is SqlDataReader object
我收到错误“指定的强制转换无效”。
是什么给出的?
答案 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"]);