Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > проблема с датой в Access |
Автор: kedicik 28.9.2007, 18:46 |
Заношу в таблицу БД Access запись в котором одно из полей имеет формат полной даты (дата и время). Беру DateTime.Now. Все прекрасно. Запоминаю эту дату в переменной типа DateTime . Далее пытаюсь изменить эту запись (используя эту переменную - именно по дате). Выдается ошибка - несоответствие типа переменной. Использую stored procedures и параметры sql Добавлено через 2 минуты и 15 секунд то есть проблема с выборкой по дате . |
Автор: thomas 28.9.2007, 19:16 | ||
kedicik, посмотри какой формат даты задан в поле таблицы.
а где в Access stored procedures ? У тебя должен быть sql-запрос(INSERT) с параметрами. И в метод add для параметра передаешь свою переменную даты. |
Автор: kedicik 28.9.2007, 20:03 |
дата.время полный формат даты Не так выразилась. В бд 2 запроса - INSERT и Select / Со страницы ASP.net выполняю запрос c INSERT - все прекрасно . Дату беру как DateTime.Now Храню эту дату в переменной (переменная тоже DateTime) Выполняю SELECT - делаю выборку из таблицы по этой дате. В запросе использую параметр = значению моей переменной (DateTime). Получаю ошибку - несоответствие типов Проблема в DateTime? может перевести ее в string? |
Автор: kedicik 28.9.2007, 20:30 |
да именно так я и делаю. Кстати использую класс доступа к бд который thomas, выложил на форуме. Добавлено через 2 минуты и 18 секунд я не формирую строку SQL на странице. а использую storedprocedure |
Автор: thomas 28.9.2007, 21:05 | ||
kedicik,
если будешь формировать SQL-запрос как string, то дату надо форматировать к такому виду для Access #MM/dd/yyyy# иначе он не примет. Но, я хоть убей не вьезжаю где у тебя в Access storedprocedure ? На SQL сервере они есть, а вот в Access где? |
Автор: kedicik 28.9.2007, 21:58 |
CommandType - storedProcedure Добавлено через 6 минут и 5 секунд я это имела ввиду. плохо вопрос сформировала Так нужно приводить к string? Добавлено через 8 минут и 50 секунд command.CommandType = CommandType.StoredProcedure |
Автор: Akina 28.9.2007, 22:16 |
Есть. Но только через ADO. В окне БД их при этом увидеть нельзя. |
Автор: kedicik 1.10.2007, 12:04 |
dazy, все правильно изложил. Хорошо. Выложу. |
Автор: kedicik 1.10.2007, 17:00 | ||||||||||
В таблице 2 поля - 1) XmneeID числовое 2) Session_Start дата полный формат даты Составлен запрос который в Access работает нормально SelectSess.
например в таблице есть такая запись 1060101 01.10.2007 11:12:58 Пытаюсь найти ее
при вызове этой функции указываю
Получаю пустую таблицу Если указаваю dim strDate as String strDate=d.ToString("dd.MM.yyyy hh:mm:ss") вызываю SelectSessionStart(1060101, strDate) то же самое пусто Добавлено через 1 минуту и 52 секунды сори
Добавлено через 3 минуты и 24 секунды
вот правильный вариант но не работает |
Автор: thomas 1.10.2007, 19:19 | ||||||
kedicik
Почувствуйте разницу ЗЫ и если ты знаешь ID, то зачем туда еще и
привинчивать. ![]() |
Автор: kedicik 1.10.2007, 19:57 | ||
я хочу записывать в бд на окончание сессии в global.asax время окончания сессии. Но поскольку один и тот же юзер может начать и бросить много сессий (закрыть браузер), то мне нужно нужно искать именно по времени начала сессии (как доп условие). Поэтому я буду записывать время окончания сессии в таблицу только если эта та сессия которая меня интересует |
Автор: dazy 2.10.2007, 07:10 |
Глупый вопрос, а в watch смотрела, переменной правильно дата присваивается? |
Автор: kedicik 2.10.2007, 12:07 | ||
Вопрос решила. это не прошло!
так все заработало! Всем спасибо! |
Автор: kedicik 2.10.2007, 18:41 | ||
Хочу продолжить тему все-таки! Потому что до обеда все это работало а после обеда - опять пусто! то есть этот формат не совсем верен. Использовала следующий формат
Теперь работает и до обеда и после обеда. А все дело в том что до полудня - время AM а после полудня PM. И если я искала время как мне казалось 16:15:00 (как я вижу в БД) а задавала я 4:15:00 PM естественно с таким форматом ничего не могла найти Добавлено через 2 минуты и 16 секунд Теперь возникает вопрос -- права ли я используя такой формат? может он не будет работать в каких-то случаях? И как хранится в БД время? зависит ли это от системных установок? |