MySQL, Connector и тип даты 0000-00-00
Пожалуйста, извините за мой английский http://dev.mysql.com/doc/connector-net/en/connector-net-programming-datetime-null.html Очевидно.NET не может принять дату 0000-00-00. Я пытаюсь использовать код со страницы в моем коде:
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 ответ
0000-00-00 не является действительным значением DateTime
Чтобы решить эту проблему, вы должны настроить MySQL .NET Connector ( здесь вы можете найти все параметры).
У вас есть два пути:
- Добавьте AllowZeroDateTime=true в строку подключения. Это позволяет вам управлять значением 0000-00-00, используя специальный объект MySqlDateTime. Вы можете получить этот тип объекта из MySqlDataReader
- Добавьте ConvertZeroDateTime=true в строку подключения. Таким образом, все значения 0000-00-00 будут преобразованы в DateTime.MinValue
Я предпочитаю второе.... Я надеюсь, что это будет полезно для вас.