6

私のc#コードには、float型のSQL Management 2008 R2データベースにある値に設定しようとしているdoubleがあります(これはc#のdoubleに対応しますよね?)。この構文を使用する場合

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

「指定されたキャストが無効です」というエラーが表示されます。

何が得られますか?

4

3 に答える 3

7

SqlDataReaderオブジェクトから利用できるヘルパークラスを使用することをお勧めします...

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

列がnullになる可能性がある場合は、それを考慮する必要があります...

double dbl = (reader["DoubleColumn"] != DBNull.Value ? dr.GetDouble(dr.GetOrdinal("DoubleColumn")) : 0.0);
于 2012-08-01T19:48:24.453 に答える
7

あなたは簡単GetDoubleに直接することができます:

reader.GetDouble(reader.GetOrdinal("column1"))
于 2012-08-01T19:45:04.480 に答える
4

使用Convert.ToDouble方法:

double x = Convert.ToDouble(reader["column1"]);
于 2012-08-01T19:42:59.547 に答える