Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 值为0000-00-00:00:00时如何处理mysql datetime列_C#_Mysql_Datetime - Fatal编程技术网

C# 值为0000-00-00:00:00时如何处理mysql datetime列

C# 值为0000-00-00:00:00时如何处理mysql datetime列,c#,mysql,datetime,C#,Mysql,Datetime,我有一个数据库列“date_announced”,其值为0000-00-00 00:00:00,当我尝试将此值插入类字段时,我遇到了错误 无法将MySQL日期/时间值转换为System.DateTime“,如何优雅地处理代码而不引发异常 date_announced = 0000-00-00 00:00:00 var BuildDetails = new BuildAnnounceDetails(); while (rdr.Read()) { BuildDetails.SP = rd

我有一个数据库列“date_announced”,其值为
0000-00-00 00:00:00
,当我尝试将此值插入类字段时,我遇到了错误
无法将MySQL日期/时间值转换为System.DateTime“
,如何优雅地处理代码而不引发异常

date_announced = 0000-00-00 00:00:00

var BuildDetails = new BuildAnnounceDetails();

while (rdr.Read())
{
    BuildDetails.SP = rdr.GetString(0);
    //BuildDetails.BuildID = rdr.GetString(1);
    BuildDetails.CreatedDate = rdr.GetString(1);
    BuildDetails.AnnouncedDate = rdr.GetString(2); **//throws an exception at this line**
    BuildDetails.AnnouncedBy = rdr.GetString(3);
    if (BuildDetails != null)
    {
        BuildAnnounceDetailsInfo.Add(BuildDetails);
    }
}
错误:

无法将MySQL日期/时间值转换为System.DateTime

您应该使用具有
IsValidDateTime
属性的方法。因此,在您的情况下:

BuildDetails.AnnouncedDate = rdr.GetMySqlDateTime(2).IsValidDateTime?rdr.GetString(2):string.Empty;
您应该使用具有
IsValidDateTime
属性的方法。因此,在您的情况下:

BuildDetails.AnnouncedDate = rdr.GetMySqlDateTime(2).IsValidDateTime?rdr.GetString(2):string.Empty;

0000-00-00…日期的目的是什么?你想显示它还是什么?当值为
0000-00-00
时,我只想显示一个空字符串。也许使用null而不是0。@STLDeveloper-空值不是一个糟糕的设计吗?而是有一个默认值?@dotnet-一点也不。空值在未知值时非常有用。我想做什么0000-00-00…日期的目的是什么?你想显示它还是什么?当值为
0000-00-00
时,我只想显示一个空字符串。也许可以使用null而不是0。@STLDeveloper-null值不是一个糟糕的设计吗?而是有一个默认值?@dotnet-一点也不。值未知时,null非常有用。