MySQL Connector& date type 0000-00-00

时间:2013-06-14 08:46:20

标签: mysql mysql-connector

抱歉我的英语 http://dev.mysql.com/doc/connector-net/en/connector-net-programming-datetime-null.html 显然.NET不能采用稿件日期。 我尝试在我的代码中使用页面中的代码:

 for (int i = 0; i < dataReader.FieldCount; i++) list.Add(new List<string>());

            DateTime myTime;
            try
            {
                //Read the data and store them in the list
                while (dataReader.Read())
                {
                    for (int i = 0; i < dataReader.FieldCount; i++)
                    {
                        if (tablename == "orders")
                        {
                            if (dataReader.IsDBNull(dataReader.GetOrdinal("sell_date"))) MessageBox.Show("111");
                        }
                        list[i].Add(dataReader[i] + "");
                    }
                }
            }
             catch(Exception e)
            {
                 MessageBox.Show("Ошибка: " + e.GetType().ToString() + "\nСообщение: " +e.Message.ToString());
            }

同样的错误: 错误:MySql.Data.Types.MySqlСonversionException 消息:无法将MySQL日期/时间值转换为System.DateTime

为什么MessageBox.Show(“111”);不工作?字段sell_date是包含0000-00-00

1 个答案:

答案 0 :(得分:0)

0000-00-00不是有效的DateTime值

要解决此问题,您必须配置MySQL .NET Connector(here you can find all parameters)。

您有两种方式:

  1. 在连接字符串中添加 AllowZeroDateTime = true 。这允许您使用名为MySqlDateTime的特殊对象来管理0000-00-00值。您可以从MySqlDataReader
  2. 获取此类对象
  3. 在连接字符串中添加 ConvertZeroDateTime = true 。这样所有的EA值都将转换为DateTime.MinValue
  4. 我更喜欢第二种......我希望这对你有用。