| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Проблема при изменении значения поля в DataRow |
| Автор: TheRam 30.12.2014, 11:59 | ||||
| Добрый день форумчане и с наступающим новым годом! Нужна помощь, так как я уже всю голову сломал: Есть база на Sql Server с несколькими таблицами. В программе предусмотрен отчет "печать конвертов" по тем записям, которые выбрал пользователь. При повторном формирования отчета, уже напечатанные записи включатся не должны, для этого я предусмотрел в таблице признак который показывает печаталась ли уже данная запись или нет. Обновить признак у записей, которые уже напечатались, я пытаюсь с помощью процедуры:
Проблема в том, что процедура ругается на строчку Update и выдает сообщение: "Переполнение SqlDateTime. Должно находиться в пределах от 1/1/1753 12:00:00 AM и 12/31/9999 11:59:59 PM". стал проверять. Одно из полей с датой показывает дату {01.01.0001}, хотя в базе у меня во всех полях проставлена дата {01.01.1900}(Сделал SQL запрос и после него все равно сделал еще и Update по этому полю всех записей, что б у всех точно стояла там дата {01.01.1900}). Пытался выполнить операцию
Она игнорируется и значение не меняется, хотя дебагер показывает true на outRow.date == new DateTime(1, 1, 1) и new DateTime(1900, 1, 1), по идее, должно измениться . В настройках DataSet'а этой таблицы readonly = false для всех полей, проверил. А вот значение outRow.priz = true; меняется. Менял и текстовые поля - без проблем, с помощью обычной операции присваивания. Почему дата вдруг из {01.01.1900} превращается в {01.01.0001} и как это исправить? или как насильно поменять дату в outRow.date на нужную мне дату? |
| Автор: TheRam 30.12.2014, 13:45 |
| После проведенного исследования выяснилось, что проблема возникает именно при присвоении значения 01.01.1900, если задать другую дату, проблема решается сама собой. Однако, эта проблема встречается только лишь на одном конкретном поле типа datetime. Остальные 3 поля с этим же типом так себя не ведут. Пересоздание столбца и переопределение датасета не помоглао |