|
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 3
|
|||||||||||||||||||||
Функция update() адаптера не сохраняет изменения в БД19.04.2009, 16:57. Показов 12810. Ответов 14
Метки нет (Все метки)
Добрый день!
Создал в Visual Studio 2008 баззу данных, добавил в неё таблицу test c полями id типа int и name string. Создал типизированный Dataset, добавил в него оную таблицу. Далее на форму нанёс DataGridView, поставил в его свойство Datasourse таблицу test. Добавил кнопку. На нажатие кнопки повесил код:
После внесений изменений в DatagridView нажатие кнопки не вызывает сохранение данных. Попробовал в QueryBuilder проверить Insert команду адаптера, её текст:
Причём проверял что возвращает Update() - всегда возвращал число стро, которые надо было добавить/обновить. ConnectionString я не проверял, т.к. выборка проходит правильно, а у адаптера строка подключения одна для всех запросов. будьте добры, подскажите куда копать
0
|
|||||||||||||||||||||
| 19.04.2009, 16:57 | |
|
Ответы с готовыми решениями:
14
UPDATE не сохраняет изменения в БД Не получается записать через метод Update адаптера только обновленные записи DataTable ADODataSet не сохраняет изменения |
|
МИР ВАШЕМУ ДОМУ!!!
|
|||||||
| 19.04.2009, 18:43 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 3
|
||
| 20.04.2009, 15:59 [ТС] | ||
|
пробовал вручную открывать соединение, Эффект тот же. проверял ConnectionString-в норме Добавлено через 17 часов 19 минут 13 секунд файл с ДБ кидался в каталог Debug или Release там ее и менял
0
|
||
|
0 / 0 / 1
Регистрация: 18.03.2009
Сообщений: 32
|
|
| 21.04.2009, 08:06 | |
|
0
|
|
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
| 21.04.2009, 10:12 | |
|
не обращай на неё внимание, а со своего проекта НЕМЕДЛЕННО удали!
Добавлено через 4 минуты 51 секунду PADOCTb, для того чтобы работал Update и долго сним не возиться, то лучше создавать датасеты, адаптеры и соурсы дизайнером. Если есть у тя ггрид, то нажми на стрелку что вверху справа -> Add project dataSource -> database -> New Connection
1
|
|
|
0 / 0 / 1
Регистрация: 18.03.2009
Сообщений: 32
|
||
| 21.04.2009, 12:24 | ||
|
Может быть я и двигаюсь в неправильном напровлении но пока справляюсь с поставленными задачами, хотя иногда понимаю что-то какие-то действия я делаю не так. И хотел бы поднять в данной теме такое обсуждение как правильно использовать компоненты для работы с ADO.NET, т.к. я просмотрев разные темы форума понял что каждый работает по своим правилам. Я как програмист БД на VFP, переходящий c# и ADO, делаю так: Приложение запускается с проверкой данных пользователя на сервере, на главной форме у меня нет ни каких датасетов и адаптеров, при вызове какой-либо форме создаетется датасет, адаптер и прикручивается к элементам управления, если с этой формы нужно вызвать какой-то экземпляр с более подробной информации для редактирования, или справочник, то другой форме просто передается один-два параметра этого экземпляра, в которой существуют свои датасеты и адаптеры и они в свою очередь выбирают нужные данные с сервера, после сохранения и закрятия вызывается матод на подобие Form1_Load(null, null); все обновилось все довольны. Ну вот как так я начал работать. Готов принять разные критики и обсуждения.
0
|
||
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
||||||
| 21.04.2009, 13:20 | ||||||
|
У адаптера есть свойство Fill. И если сдлеать
0
|
||||||
|
0 / 0 / 1
Регистрация: 18.03.2009
Сообщений: 32
|
|
| 21.04.2009, 13:57 | |
|
IT-Skyline,
Да я пробовал так, но почему-то он просто записывает еще раз в таблицу данный с сервера после выполнения метода, а не обновляет, может сначала Reset, или он вообще сбросит все параметры?
0
|
|
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
| 21.04.2009, 15:26 | |
|
Update(Dataset.DataTable) -- передаёт все изменения таблицы на сервер
Fill(Dataset.DataTable) -- заполняет таблицу данными из сервера.
1
|
|
|
0 / 0 / 1
Регистрация: 18.03.2009
Сообщений: 32
|
|
| 22.04.2009, 06:32 | |
|
IT-Skyline,
тогда как просто обновить данные с сервера, ведь может на сервере уже появились новые данные от других юзеров?
0
|
|
|
МИР ВАШЕМУ ДОМУ!!!
|
|||
| 22.04.2009, 11:17 | |||
|
Добавлено через 15 минут 39 секунд Ocon = new OleDbConnection(con); Ocom = new OleDbCommand(); Ocom.Connection = Ocon; Ocom.CommandType = CommandType.Text; Ocom.CommandText = "Update Reg set ball1tur = @ball where ID=@id";//@ball просто переменная regTableAdapter.Update(baseDataSet.Reg); //созданное само при отображении базы в гриде : regTableAdapter,baseDataSe этот код для кнопки сохранить в моем случае. УДАЧИ!!! если что пиши. при завершении мастера Добавлено через 2 минуты 20 секунд К датагридвиаверу привяжи базу мастером как говорил IT-Skyline. (в правом верхнем углу щелкаеш по стрелочке ....). после завершения работы мастера автоматически создастся датасет и датаадаптер. Теперь для Update делаеш следующее: Ocon = new OleDbConnection(con); Ocom = new OleDbCommand(); Ocom.Connection = Ocon; Ocom.CommandType = CommandType.Text; Ocom.CommandText = "Update Reg set ball1tur = @ball where ID=@id";//@ball просто переменная regTableAdapter.Update(baseDataSet.Reg); //созданное само при отображении базы в гриде : regTableAdapter,baseDataSe этот код для кнопки сохранить в моем случае. Сдесь я данные изменяю на самом датагридвиавере УДАЧИ!!! если что пиши.
0
|
|||
|
5 / 5 / 0
Регистрация: 19.09.2008
Сообщений: 71
|
||||||
| 25.04.2009, 18:18 | ||||||
|
У меня тоже есть вопрос по обновлению.Хоть убейте) не могу понять почему не работает такой код
0
|
||||||
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|||
| 25.04.2009, 19:54 | |||
0
|
|||
|
5 / 5 / 0
Регистрация: 19.09.2008
Сообщений: 71
|
|
| 25.04.2009, 20:17 | |
|
Да процедура при выполнении cmd.ExecuteNonQuery();(из примера который я привел) добавляет новые данные, но фактически в базе данных новые данные не появляются
0
|
|
|
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
|
||
| 02.05.2009, 08:21 | ||
|
1
|
||
| 02.05.2009, 08:21 | |
|
Помогаю со студенческими работами здесь
15
Не сохраняет в базу изменения Нажимаю изменения параметров адаптера, а там пусто Выясните, сохраняет ли булева функция 0, 1, является ли функция линейной, монотонной, само двойственной? не сохраняет изменения Тип данных Builder не сохраняет изменения в проекте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|