CAST не действителен (дата OLEDB) - PullRequest
0 голосов
/ 18 августа 2010

добрый день. Я использую соединение OLEDB для соединения с базой данных DB2. У меня проблемы с отображением дат из базы данных внутри .NET.

В моем бизнес-объекте я определил private DateTime _genftmdpdate=DateTime.MinValue; Но всякий раз, когда я выбираю дату из базы данных и заполняю ее в своей переменной, я получаю Указанная ошибка приведения не действительна

myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE"))

Пожалуйста, помогите мне, потому что я не хочу постоянно преобразовывать дату в строку.

Редактировать --- Это тоже не сработает myftModInstall.genFtMDPDate = Convert.ToDateTime(myRecord.GetType((System.Data.OleDb.OleDbType.Date)(myRecord.GetOrdinal("GENFTMDPDATE"))));

Ответы [ 2 ]

1 голос
/ 30 апреля 2015

Поставщики IBMDA * по умолчанию отображают типы данных DB2 Date в строки.Необходимо переопределить значение по умолчанию в строке подключения:

convert date time to char=FALSE

См. Этот вопрос: Использование даты AS400 в отчете SSRS

Статья службы поддержки IBM по свойствам соединения: http://www -01.ibm.com / поддержка / docview.wss? UID = nas8N1017400

0 голосов
/ 18 августа 2010

Убедитесь, что вы проверили NULL, прежде чем пытаться получить значение.

if(!myRecord.IsDBNull(myRecord.GetOrdinal("GENFTMDPDATE"))
    myftModInstall.genFtMDPDate = myRecord.GetDateTime(myRecord.GetOrdinal("GENFTMDPDATE"));
...