|
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
|
|
Добавление в таблицу с autoincrement21.02.2010, 21:51. Показов 8138. Ответов 9
Метки нет (Все метки)
Имеем таблицу, часть полей которых генериться на серваке. Самое простое - поле id с autoincrement. Вот мы открыли справочник, добавили пару записей. Id скорее всего будет выставляться как -1, -2, или вообще никак. Сохраняем значения. В базе все прописалось правильно - новое id будет, например, '12345', но в клиенте, так и остались старое id '-1'. Конечно, если загрузить заново, все будет нормально. Но из-за одной записи не хочется обновлять данные в несколько тысяч строк.
Как бы так сделать, чтобы после добавления/изменения строки, она обновлялась из базы без загрузки остальных данных?
0
|
|
| 21.02.2010, 21:51 | |
|
Ответы с готовыми решениями:
9
Добавление в базу с Autoincrement'ным полем Добавление данных, заполнение поля со свойством AutoIncrement Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы |
|
336 / 269 / 21
Регистрация: 30.03.2009
Сообщений: 500
|
|
| 22.02.2010, 16:00 | |
|
У меня была та-же ситуация, так обновление ID происходило просто при перемещении на другую строку DataGreedView, без ручного обновления!
0
|
|
|
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
|
|
| 22.02.2010, 16:25 [ТС] | |
|
0
|
|
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
||
| 22.02.2010, 16:42 | ||
|
1. При добалвении нужно чтобы хранмка возвращала новый ID. Тогда просто в датасет вставляете новую строку 2. при обновлении обновляете датасет.
0
|
||
|
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
|
||||
| 22.02.2010, 17:22 [ТС] | ||||
|
При сохранении можно весь DataSet передать, адаптер сам разбирает, что обновить, что удалить, что добавить. Этак все придется переписывать вручную. Как это "в лоб" реализовать, я представляю. Но должны быть наверно встроенные методы для этого, задача не такая уж уникальная. Или хотя бы чтоб одну-две функции можно было переопределить..
0
|
||||
|
|
|
| 22.02.2010, 20:45 | |
|
ДАнные обновлять всеравно нужно, если у Вас сетевая БД, т.к. кроме Вас добавлять строки может еще кто-то, тогда методы на клиенте ничего не дадут. Если же используеся локальная БД, то есть 2 способа:
1) Работать со стандартными классами DataSet, в которых создатутся нужные адаптеры. Тогда при работе с DataGridView инкремент работает правильно. 2) Если с первым лень работать, то можно после добавление записи сделать запрос 'select max(ID) from table', фактически вернется ID последней добавленной записи.
0
|
|
|
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
|
||||
| 22.02.2010, 20:58 [ТС] | ||||
|
0
|
||||
|
|
||||||
| 22.02.2010, 21:06 | ||||||
|
Есть у меня такой метод:
![]() В этом случае данные верны только до обновления БД. После записи в БД этот метод уже не поможет.
0
|
||||||
|
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
|
||||||||||||||||
| 23.02.2010, 12:37 [ТС] | ||||||||||||||||
|
Решил проблему. У команд оказывается есть свойство UpdatedRowSource, только чтоб это работало, надо чтобы запрос возвращал данные - переменную или строку. Пробовал дописать
Сделал так: Подключил обработчик на добавление строки
![]() Добавлено через 12 часов 24 минуты Все оказалось, ещё проще. В настройка TableAdapter нужно поставить галку "Обновлять данные", VS сам генерит пакетный запрос. Только у меня что-то такой номер не прокатывает, опцию ставлю, код не добавляется, а потом опция опять стоит сброшенной
0
|
||||||||||||||||
|
2 / 2 / 2
Регистрация: 12.10.2011
Сообщений: 44
|
||
| 03.06.2015, 14:31 | ||
|
Здравствуйте, прошу прощения, что поднимаю тему. Все понял, спасибо за разъяснения, но вот не могу найти вот это
0
|
||
| 03.06.2015, 14:31 | |
|
Помогаю со студенческими работами здесь
10
Добавление записей в таблицу и связанную с ней таблицу, с учётом связи
Добавление товара и добавление отчета в таблицу AutoIncrement AutoIncrement Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|