C# 从SQL数据库读取日期时间值

C# 从SQL数据库读取日期时间值,c#,sql,datetime,C#,Sql,Datetime,如何从SQL数据库中读取日期时间字段 这不起作用: emp.DateFacturation = (DateTime)(dr["DateFacturation"]) 这也不是: emp.DateFacturation = DateTime.Parse(dr["DateFacturation"].toString()); 由于您已对现已删除的答案发表了以下评论: dr是一个数据阅读器 你可以用。您应该首先检查值是否为DBNull: 我用于获取列名的列索引,以将其传递给GetDateTime使用:

如何从SQL数据库中读取日期时间字段

这不起作用:

emp.DateFacturation = (DateTime)(dr["DateFacturation"])
这也不是:

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

由于您已对现已删除的答案发表了以下评论:

dr是一个数据阅读器

你可以用。您应该首先检查值是否为
DBNull

我用于获取列名的列索引,以将其传递给
GetDateTime

使用:


DateFacturation
的数据类型是什么?
dr[“DateFacturation”]
public DateTime DateFacturation{get;set;}“不起作用”的值是什么。错在哪里?我不是投反对票的人,但你能解释一下为什么这会适用于OP发布的不起作用的例子吗?@JoeyGennari:你说得对。我已经编辑了我的答案,因为我假设此列可以为空。
DateTime dateFacturation;
int colIndex = dr.GetOrdinal("DateFacturation");
if(!dr.IsDBNull( colIndex ))
    dateFacturation = dr.GetDateTime( colIndex );
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...
}