2009-05-13 17 views
1

私はSqlDataReaderを使用してデータを取得しようとしていますが、その1つの列はdatetimeにあります。私はこのようなことをしたいですSqlDataReaderはすべてを文字列として格納しますか?

SqlCommand command = new SqlCommand("SELECT * FROM table", connection); //connection is defined earlier 
     SqlDataReader data = command.ExecuteReader(); 
     while(data.Read()){ 
      DateTime birthday = data["Birth"]; 
      list.Add(birthday); 
     } 
    } 

私はこれを行うことができますか?または、SqlDataReaderは文字列を返します。その場合、その文字列を使用して新しいDateTimeオブジェクトを作成する必要がありますか?

おかげで、 -S

答えて

7

SqlDataReaderのデータとして、強く型付けされたオブジェクトを返します - ちょうど右のメソッドを呼び出して、例えば:

data.GetDateTime(序)

4

あなたが欲しい:

DateTime birthday = data.GetDateTime(data.GetOrdinal("Birth")); 

SqlDataReaderには、厳密に型指定されたGet *()メソッドのwhole bunchがあります。

+0

GetDateTimeメソッドはカラム名ではなく序数しか取らないため、data.GetDateTime(data.GetOrdinal( "Birth")) – LukeH

+0

実際にあなたは正しいです!今修正。 –

関連する問題