У меня есть приложение winforms .net 2.0, которое работает на сервере MS SQL 2008. Я загружаю DataSet с этого сервера, открываю набор этого набора данных через связанные элементы управления winform, а затем отправляю обновления через SqlDataAdapters.
Один такой адаптер прикреплен к таблице с двумя ключевыми полями RecruitID и StatusDate. StatusDate - это поле DateTime на сервере, а System.DateTime в наборе данных.
В последнее время я получаю DBConcurrencyExceptions, я думаю, что b / c форматирования информации о дате. Если я перехватываю SQL, генерируемый адаптером, я вижу ГДЕ условия, такие как:
WHERE (RecruitID = 236) AND (StatusDate = '2010-05-27 04:45:34.053')
Когда они должны быть:
WHERE (RecruitID = 236) AND (StatusDate = '2010-05-27 16:45:34.053')
Итак, часы должны быть в военное время - вот что показывает, запрашиваю ли я соответствующую запись из БД в студии управления mssql. Я не уверен, где происходит перевод с военного времени на стиль am / pm, поэтому я не знаю, где его можно остановить.
Эта дата отображается в DataGrid. Соответствующий экземпляр DataGridColumnStyle имеет свойство .Format = 'g', которое преобразует указанную выше дату в «27.05.2010 16:45» для отображения. Если я удалю это свойство формата 'g', это не будет иметь никакого значения.
Кто-нибудь может подсказать мне здесь?
Большое спасибо заранее!
-Roy