6

SQL データベースから日時フィールドを読み取るにはどうすればよいですか?

これは機能していません:

emp.DateFacturation = (DateTime)(dr["DateFacturation"])

これもそうではありません:

emp.DateFacturation = DateTime.Parse(dr["DateFacturation"].toString());
4

2 に答える 2

6

削除された回答に次のようにコメントしたので:

dr は DataReader です

使用できますSqlDataReader.GetDateTime。値が次のものであるかどうかを最初に確認する必要がありDBNullますDataReader.IsDBNull

DateTime dateFacturation;
int colIndex = dr.GetOrdinal("DateFacturation");
if(!dr.IsDBNull( colIndex ))
    dateFacturation = dr.GetDateTime( colIndex );

GetOrdinalに渡す列名の列インデックスを取得するために使用しますGetDateTime

于 2012-10-31T13:59:27.907 に答える
0

使用DateTime.TryParse

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...
}
于 2012-10-31T14:15:30.407 に答える