私のc#コードには、float型のSQL Management 2008 R2データベースにある値に設定しようとしているdoubleがあります(これはc#のdoubleに対応しますよね?)。この構文を使用する場合
double x = (double)reader["column1"]; //reader is SqlDataReader object
「指定されたキャストが無効です」というエラーが表示されます。
何が得られますか?
私のc#コードには、float型のSQL Management 2008 R2データベースにある値に設定しようとしているdoubleがあります(これはc#のdoubleに対応しますよね?)。この構文を使用する場合
double x = (double)reader["column1"]; //reader is SqlDataReader object
「指定されたキャストが無効です」というエラーが表示されます。
何が得られますか?
SqlDataReaderオブジェクトから利用できるヘルパークラスを使用することをお勧めします...
double dbl = reader.GetDouble(reader.GetOrdinal("DoubleColumn"));
列がnullになる可能性がある場合は、それを考慮する必要があります...
double dbl = (reader["DoubleColumn"] != DBNull.Value ? dr.GetDouble(dr.GetOrdinal("DoubleColumn")) : 0.0);
あなたは簡単GetDouble
に直接することができます:
reader.GetDouble(reader.GetOrdinal("column1"))
使用Convert.ToDouble
方法:
double x = Convert.ToDouble(reader["column1"]);