DateTime
とは異なるデータ型であり、やのようにstring
相互にキャストすることはできません。を取得するには、解析する必要があります。次のコードスニペットを使用して、現在のカルチャで提供されているデフォルトの形式で解析してみてください。int
float
string
DateTime
DateTime
OleDbDataReader dbRead = cmd.ExecuteReader();
while (dbRead.Read())
{
product.DateReleased = dbRead["Date Released"] != DBNull.Value ? DateTime.Parse(dbRead["DATE"]) : null;
product.DatePublished = dbRead["Publish_Date"] != DBNull.Value ? DateTime.Parse(dbRead["Publish_Date"]) : null;
}
と仮定するDatePublished
とDateReleased
、タイプはDateTime?
です。特定の日付形式がある場合はDateTime.ParseExact
、たとえば、形式をパラメーターとして受け取るメソッドを使用できます。
DateTime.ParseExact(dbRead["Date Released"], "dd.MM.yyyy", CultureInfo.InvariantCulture)
DatePublished
およびDateReleased
がタイプの場合、DateTimestring
を呼び出して、次のように文字列に変換する必要があります。ToString()
product.DateReleased = dbRead["Date Released"] != DBNull.Value ? dbRead["DATE"].ToString() : "No Date available";
product.DatePublished = dbRead["Publish_Date"] != DBNull.Value ? dbRead["Publish_Date"].ToString() : "No Date Available";
データベースの基になる列にタイプがある場合は、次のようにクラスのメソッドにDateTime
アクセスできます。GetDateTime
OleDbDataReader
product.DateReleased = dbRead.GetDateTime("Date Released");