SQL データベースから日時フィールドを読み取るにはどうすればよいですか?
これは機能していません:
emp.DateFacturation = (DateTime)(dr["DateFacturation"])
これもそうではありません:
emp.DateFacturation = DateTime.Parse(dr["DateFacturation"].toString());
削除された回答に次のようにコメントしたので:
dr は DataReader です
使用できますSqlDataReader.GetDateTime
。値が次のものであるかどうかを最初に確認する必要がありDBNull
ますDataReader.IsDBNull
。
DateTime dateFacturation;
int colIndex = dr.GetOrdinal("DateFacturation");
if(!dr.IsDBNull( colIndex ))
dateFacturation = dr.GetDateTime( colIndex );
GetOrdinal
に渡す列名の列インデックスを取得するために使用しますGetDateTime
。
DateTime datevalue;
if (DateTime.TryParse(dr["DateFacturation"].ToString(), out datevalue))
{
emp.DateFacturation = datevalue;
}
else
{
// TODO: conversion failed... not a valid DateTime
// Print it out and see what is wrong with it...
}