Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UPDATE не обновляет 
:(
    Опции темы
MFSham
  Дата 31.10.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Есть следующий кусок кода:
Код

OleDbConnection con = new OleDbConnection(_DManager.ConnectionString);
try {
   con.Open();

   // значения timeID, subjectID, dayID, classID определены
   string sqlQuery = @"UPDATE TimeTable SET TimeTable.SubjectID = " + subjectID + @"
                                    WHERE ((TimeTable.TimeID = " + timeID + ") AND (TimeTable.DayID = " + dayID + @") AND 
                                    (TimeTable.ClassID = " + classID + " ));";                    
   dbCommand = new OleDbCommand(sqlQuery, con);
   OleDbCommand dbCommand.ExecuteNonQuery();
}
catch(OleDbException err) {
   MessageBox.Show(err.Message);
}
finally {
   con.Close();
}

БД Access. Подключается к БД нормально, запрос тоже выполняет нормально, даже правильно возвращает количество изменныех столбцов, но сами изменения в БД не происходят. 
Запускал точно такой же запрос с теми же параметрами в самом Access. Все работает на ура.

Вот и думаю почему... Может кто подскажет :/
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
thomas
Дата 31.10.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MFSham, 
Приветствую.
Как определяешь что
Цитата

сами изменения в БД не происходят.


По идее должно работать.
Только вот здесь поправь
Код

dbCommand.ExecuteNonQuery();

писать тип второй раз совершенно не надо, это лишнее - OleDbCommand.
И какого типа переменные timeID, subjectID, dayID, classID?
Если string, то поставь значения между одинарными кавычками
Код

string sqlQuery = @"UPDATE TimeTable SET TimeTable.SubjectID = '" + subjectID + @"'
                                    WHERE ((TimeTable.TimeID = '" + timeID + "') AND (TimeTable.DayID = '" + dayID + @"') AND 
                                    (TimeTable.ClassID = '" + classID + "' ));";     

Если int, то не надо.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
MFSham
Дата 31.10.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



thomas, 
привет.
Цитата(thomas @  31.10.2007,  21:33 Найти цитируемый пост)
писать тип второй раз совершенно не надо, это лишнее - OleDbCommand.
просто не туда скопировал, надо было на строчку выше объявление поставить, промахнулся smile
Цитата(thomas @  31.10.2007,  21:33 Найти цитируемый пост)
По идее должно работать.
Вот и я так думаю)
Цитата(thomas @  31.10.2007,  21:33 Найти цитируемый пост)
И какого типа переменные timeID, subjectID, dayID, classID?
все типа int
Цитата(thomas @  31.10.2007,  21:33 Найти цитируемый пост)
Как определяешь что сами изменения в БД не происходят.
Открываю файл БД Access и смотрю что ничего не происходит. Да и при загрузке программы данные у меня считываются и отображаются с БД.

Ведь это прямое подключение к БД. У меня используется DataSet, но это к этому куску кода ну никакого отношения не имеет. Я же просто открываю соединение и делаю запрос. В чем тут может быть ошибка никак не пойму.


Это сообщение отредактировал(а) MFSham - 31.10.2007, 22:28
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
thomas
Дата 31.10.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



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

ЗЫ и скинь проект, я у себя посмотрю. Да БД не забудь. Если можно конечно.



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
MFSham
Дата 31.10.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Ставил, проходил, смотрел. И так несколько десятков раз в попытке понять почему smile
Брал сам запрос который получается при пошаговом, проверял запросом в самом Access(все отлично работает).

Цитата(thomas @  31.10.2007,  22:38 Найти цитируемый пост)
ЗЫ и скинь проект, я у себя посмотрю. Да БД не забудь. Если можно конечно.

Можно, но я его на работе оставил( Может я тебе его завтра где-то в обед скину?
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
thomas
Дата 31.10.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MFSham, 
Цитата

Брал сам запрос который получается при пошаговом, проверял запросом в самом Access(все отлично работает).

А что было в программе на следующем шаге?

Когда сможешь, тогда и выложишь.



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
MFSham
Дата 31.10.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Цитата(thomas @  31.10.2007,  22:49 Найти цитируемый пост)
А что было в программе на следующем шаге?

Ничего smile
Такой запрос выполняется несколько раз только для различных значений. Да и ExecuteNonQuery() возвращает 1, т.е. одна строка изменена. Т.е. вроде как выполняется. 

Вышлю глянешь, а может и я к этому времени соображу чего да как (и подумаю какой же я нехороший, так сморосил smile)
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.