如何在c#中为mysql处理null date而不将它们转换为null

时间:2010-11-12 06:08:21

标签: c# mysql

0000-00-00 00:00:00

我在mysql中将此日期作为未定义大小写的默认日期

我如何在c#中获取它们并重新插入它们而不需要在MysqlDatabase中进行更改。

如果我用c#获取它们。我收到Unable to convert MySQL date/time value to System.DateTime

的错误

我如何在c#中获取并插入它们而不更改日期

3 个答案:

答案 0 :(得分:2)

使用Nullable类型和as运算符在C#中表示日期时间值。这是处理映射到值类型并且可能没有值的数据库类型的最简单机制。例如:

object valueFromMySQL = GetValueFromMySQL(); // or whatever
DateTime? datetimeValue = valueFromMySQL as DateTime?;

如果该值有效,则将其解释为DateTime,否则将被解释为null。

您还应该能够毫无问题地将类型DateTime?的值发送回MySQL。

答案 1 :(得分:0)

DateTime.MinValue(最小值DateTime支持)为1-1-0001 0:00:00。是否可以选择将MySQL默认设置为日期日期/时间而不是0-0-0000 0:00:00?这里的问题是,您设置为默认值的日期/时间不是有效的日期/时间(没有月份,数字为零),因此DateTime将永远不接受此日期。

答案 2 :(得分:0)

在这种情况下,您需要使用try parse。

DateTime ReturnedDateValue;

DateTime DateFromSqlDB = EntityClass.DateCreated;

if (DateTime.TryParse(DateFromSqlDB, ReturnedDateValue))
{
    /// Do the insert stuff here
}