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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с update бд Access, не генерируется метод 
:(
    Опции темы
Innos
Дата 8.1.2013, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2007

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



Добрый день. 
перепала мне разовая малюсенькая задача - создать программку, которая будет Acces'овскую базу крутить. Делала все по книжке - подключила базу с помощью мастера, положила на форму датагридвью, дальше пошла конфигурировать DataAdapter  с помощью мастера -  метод update не создается автоматически! Первичный ключ в базе есть, таблица одна, select  возвращает колонку с ключом, а update так и не создается программно. Пробовала писать update вручную - не записываются изменения. Что делать дальше - не представляю, помогите пожалуйста!  smile  Проект прикладываю, базу тоже 

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Chiken.7z 83,99 Kb
PM MAIL   Вверх
Innos
Дата 8.1.2013, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2007

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



И почему доступно только "Use SQL statement" в Tableadapter Configuration?


Это сообщение отредактировал(а) Innos - 8.1.2013, 17:33

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  картинка.png 71,23 Kb
PM MAIL   Вверх
Innos
Дата 14.1.2013, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2007

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



Написала заново запрос для update - конструктор запросов выдал ошибку - но при запуске программы запрос отработал. зато правильные запросы с точки зрения конструктора делали черти что  или вообще не делает и вылетает. как-то странно  smile 
но всеже интересно почему методы не сгенерировались автоматически? ведь минимальные условия были соблюдены 
PM MAIL   Вверх
Экскалупатор
Дата 15.1.2013, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(Innos @  8.1.2013,  13:49 Найти цитируемый пост)
Пробовала писать update вручную - не записываются изменения. 

что значит "не записываются"? во время работы падает приложение? или после внесения изменений и перезапуска приложения (из-под студии) изменения откатываются?
PM MAIL ICQ   Вверх
Innos
Дата 15.1.2013, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2007

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



Цитата(Экскалупатор @ 15.1.2013,  02:13)
Цитата(Innos @  8.1.2013,  13:49 Найти цитируемый пост)
Пробовала писать update вручную - не записываются изменения. 

что значит "не записываются"? во время работы падает приложение? или после внесения изменений и перезапуска приложения (из-под студии) изменения откатываются?

вообще ничего не происходит при вызове updateQuery - я прописывала его как запрос к бд. родного update - не было. сейчас написала update там где надо и почти как мне надо. Но знаний/умений не хватает переписать чтобы было удобно оптимально и красиво.  smile 
у меня сейчас так: 
Код

update card 
set 
half=@half,
<список колонок из 18 штук>
where 
cardnumber = @cardnumber 

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

update card 
set 
@halfCol=@half
where 
cardnumber = @cardnumber 


где передавать параметром колонку, ну и значение. Вот только не разобралась что в параметр колонки передавать  smile 
PM MAIL   Вверх
Экскалупатор
Дата 15.1.2013, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



хм, попрбовал только что. создал датасоурс приконектил его к базе аксеса, тупо перетащил из него таблицу на форму, студия мне автоматически сгенерировала все методы, даже не заикнулась нигде.
апдейтит, инсертит, удаляет. все ОК.
в следствии эксперимента выявил что оно не генерит апдейт если не может распознать первичный ключ в таблице. проверь. если нету то добавь. должно все заработать.

если не заработает(хотя должно) то дальше есть два варанта: писать совй SQL скрипт для обновления датасета, либо вообще использовать свою модель данных и свои скрипты для работы с базой данных. а что бы все это дело не расползалось по всей программе, нужно обращения к базе локализовать на одном слое, и из всей проги ходить через этот слой. тогда как именно происходит апдейт будет знать только один метод, а не +100500 мест в проге. в метод передаешь класс, там он парситься, на основе него собирается скрипт, выполняется... профит.
PM MAIL ICQ   Вверх
Innos
Дата 16.1.2013, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2007

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



есть у меня первичный ключ, он распознается, пробовала удалять потом вручную проставлять - и даже после этого ни чего не генерится. Что-то с базой видно не так. Она с парадокса переделана в акцесс. 
А вот на счет создания своей модели данных и своих скриптов - ради интереса и собственного развития можно попробовать. но это уже после сдачи задачи, а то меня на куски разорвут если задержу прогу.  smile  
а вообще спасибо за совет!
PM MAIL   Вверх
Экскалупатор
Дата 16.1.2013, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(Innos @  16.1.2013,  07:02 Найти цитируемый пост)
пробовала удалять потом вручную проставлять 

что то я не совсем понял про что ты. ты вручную значения проставляешь? или ключи назначаешь?

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

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

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

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


 




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


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

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