C# 将DateTime转换为DateTime?(零合并?)
我有个小问题。在我的数据库中,我的DateTime(?)的auto属性为null。我正在使用具有DateTime属性的RentalTo()类?返回日期。大概是这样的:C# 将DateTime转换为DateTime?(零合并?),c#,mysql,C#,Mysql,我有个小问题。在我的数据库中,我的DateTime(?)的auto属性为null。我正在使用具有DateTime属性的RentalTo()类?返回日期。大概是这样的: public class RentalDTO { public DateTime? ReturnDate { get; set; } public RentalDTO() { } public RentalDTO(DateTime?
public class RentalDTO
{
public DateTime? ReturnDate { get; set; }
public RentalDTO()
{
}
public RentalDTO(DateTime? returnDate)
{
ReturnDate = returnDate;
}
这个问题。如何使用sql reader将数据库DateTime转换为RentalTo DateTime
public RentalDTO RentalDTOFromMySqlDataReader(MySqlDataReader reader)
{
RentalDTO rental = new RentalDTO(
Convert.ToDateTime(reader["returndate"]) // How to convert this? Convert.ToDateTime Does not work
);
return rental;
}
Convert.ToDateTime不起作用。它给出了一个错误。很抱歉,我会在注释中键入此内容,但我还不允许写注释,但我的猜测是尝试使用
DateTime.TryParse()代码>并指定日期的格式,可能字符串的格式无效,不是吗?它还将处理空值。您应该检查读取器[“returndate”]
是否为空值。然后将该值强制转换为可为null的日期时间
public RentalDTO RentalDTOFromMySqlDataReader(MySqlDataReader)
{
DateTime?DateTime=string.IsNullOrEmpty(读卡器[“returndate”])?(DateTime?)null:DateTime.Parse(读卡器[“returndate”]);
RentalTo rental=新的RentalTo(日期时间);
归还租金;
}
为什么不告诉我们,读卡器[“returndate”]实际上是什么,它不是有效的日期时间“Convert.ToDateTime不起作用”并没有真正告诉我们什么。“它给出了一个错误”——那么错误是什么呢?在编写堆栈溢出问题时,请尝试预测对更多信息的任何明显请求。假设你试图帮助某人,他们说他们的代码出错。你第一个明显的问题是不是“错误是什么”?reader.GetDateTime(“returndate”)
可能是第一个解决方案…@JonSkeet我会在下一篇文章中记住它,谢谢你的提示。你不必等待下一篇文章-你可以编辑这个问题来大大改进它。