Я подключаюсь к базе данных с помощью наборов данных VS2008. Одна из таблиц в базе данных содержит столбец DateTime, который допускает значения NULL (например, Type: DateTime?)
В наборах данных MSDN категорически говорится:
Структура Nullable или Nullable в настоящее время не поддерживается в DataSet.
Однако на сайте MSDN для адаптеров таблиц указано, что TableAdaters МОЖЕТ поддерживать типы, допускающие значение NULL. :
Адаптеры таблиц поддерживают типы, допускающие значение NULL Nullable (Of T) и T ?. Дополнительные сведения о типах, допускающих значение NULL ... Дополнительные сведения о типах, допускающих значение NULL, в C # см. В разделе Использование типов, допускающих значение NULL (Руководство по программированию на C #).
Я смущен!
В конструкторе DataSet я установил свойство столбца, вызывающего нарушение, равным 'AllowDBNull = True', но всякий раз, когда я запускаю запрос TableAdapter, который возвращает нулевое значение DateTime (SELECT * FROM UDF), я получаю следующее исключение: "ArguementOutOfRangeException: Year, Month , а параметры Day описывают непредставимое DateTime. "
Одна из моих идей заключалась в том, чтобы изменить тип Column на System.Object, чтобы правильно обрабатывать нулевые значения, а затем я могу выполнять преобразования в своем собственном коде, однако я все равно получаю то же самое исключение.
В этом вопросе говорится, как однажды справиться с нулями. запрос вернулся, однако я не могу вернуть запрос.
Как я могу изменить TableAdapter и / или Dataset, чтобы я мог выполнять запрос к таблице, который может обрабатывать нули в базе данных?