【发布时间】:2021-02-06 20:26:42
【问题描述】:
我正在尝试找出从数据库中获取日期并将其正确解析/转换到我的 DAL (DataAccessLayer) 方法中的最快和最方便的方法。
我数据库中的列是数据类型date。
特别是我有这个Order 类:
public int Id { get; set; }
public DateTime OrderDate { get; set; }
public DateTime ConfirmedDeliveryDate { get; set; }
public DateTime ShippingDate { get; set; }
public Supplier Supplier { get; set; }
public List<Product> ListOfProducts { get; set; } = new List<Product>();
当然,我还有一个 DAL 方法,比如说,从数据库中获取订单列表。
List<Order> GetAll()
{
... ... ...
... ... ...
SqlDataReader rdr = cmd.ExecuteReader()
while(rdr.Read())
{
int orderId = (int)rdr["id"];
DateTime orderDate = ??? // HOW TO IMPLEMENT?
DateTime? confirmedDeliveryDate = ??? // HOW TO IMPLEMENT?
DateTime? shippingDate = ??? // HOW TO IMPLEMENT?
... ...
... ...
}
... ... ...
}
注意:在我的网站上,我只需要上述日期的YEAR、MONTH 和DAY。不确定这是否对您有帮助,可能没有,但只是想说。
【问题讨论】:
-
最快的方法是使用Dapper或类似的微ORM。
-
您的类没有任何可为空的 DateTime 类型,因此您的读取路由或类不正确。日期字段应映射到 DateTime 实例,其中时间部分中的所有内容都为零。
-
@insane_developer 我可以在类中添加这些问号,以便它们可以为空。或者只是从我的 DAL GetAll() 方法中删除它们。但除此之外,我不确定如何从数据库中获取 date 类型并将其解析为 VS C# DateTime
标签: c# sql sql-server database visual-studio