|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
||||||||||||||||
Ошибка при обновлении таблицы БД27.10.2010, 22:01. Показов 4546. Ответов 26
Метки нет (Все метки)
Добрый вечер. Подскажите пожалуйста в чем проблема. Вношу новую запись в таблицу пытаюсь обновить и вылезает ошибка "Concurrency violation: the UpdateCommand affected 0 of the expected 1 records". Это только если вносить изменения в новую строку. Если вносить изменения в имеющееся строки то обновляет без проблем.
Вот код добавления записи программно (при добавлении вручную тоже самое)
Помогите пожалуйста. Добавлено через 20 минут Есть подозрение что это из-за того, что строка, которую я хочу заполнить создана программно. Теперь не знаю что с ней сделать. Как удалить можно.
0
|
||||||||||||||||
| 27.10.2010, 22:01 | |
|
Ответы с готовыми решениями:
26
Ошибка при обновлении таблицы JTable Ошибка при попытке обновлении данных таблицы Access При обновлении таблицы обновляеться дата |
|
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
|
|
| 28.10.2010, 01:49 | |
|
Насколько я понял, данная ошибка возникает, если вы пытаетесь обновить данные, когда компонент таблицы находится в режиме редактирования. Попробуйте непосредственно перед Update выполнять метод EndInit() для вашего DataSet.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 28.10.2010, 07:48 [ТС] | |
|
Тоже самое, но более локально. Объясню:
При первом запуске приложения DataGridView, к которой подключена база пустая, также как и база. Я запускаю алгоритм, который переносит в базу данные из массива. Все хорошо данные перенеслись. Делаю Update тоже все хорошо не ругается. Закрываю приложение. Открываю снова в DataGridView нет первой строки - пустые все столбцы. При попытке записать что либо в эту строку вылетает вышеупомянутая ошибка. Все остальные строки записываются без проблем. Проблема не возникает если начать запись со второй строки а не с первой, в связи с этим вопрос. Как можно очистить строку и как можно её удалить? Спасибо.
0
|
|
|
|
|
| 28.10.2010, 08:40 | |
|
piloterist, для того чтобы вносилась новая строка необходимо определить InsertCommand для указанного адаптера, тогда метод Update отработает правильно. По хорошему следует также определить и DeleteCommand на случай, если будет удаление.
Запрос Update (я имею ввиду SQL запрос) не может вставлять данные.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 28.10.2010, 08:44 [ТС] | |
|
Ну он вроде как автоматически создается студией при добавлении таблицы:
INSERT INTO Table_5 ([Номер продукта], [Наименование продукта], Производительность, Себестоимость) VALUES (@Номер_продукта,@Наименование_продукта, @Производительность,@Себестоимость) Все значения заносятся правильно и обновляются, а вот первая строка остается пустой и в неё ничего не дает записать больше.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
||||||
| 28.10.2010, 09:06 [ТС] | ||||||
|
Изначально DataGridView так же как и DataSet пусмтые абсолютно, строк нет. В цикле идет проверка нужны ли новые строки и если нужно добавляю нужное количество строк и в них записываю элементы массива. После обновления первая строка пустая.
Далее каждый раз, если в массиве изменились элементы я его полностью перезаписываю, т.е. не только новую строку или измененную, а все.
Обновление проходит без ошибок. Закрываю приложение. Открываю и вижу в таблице то что на второй картинке. Т.е. первой строки тупо нет. И если туда попробовать что-то написать и обновить то вылезает ошибка которая в первом сообщении.
0
|
||||||
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 28.10.2010, 10:12 [ТС] | |
|
Я конечно подозреваю что я делаю все через одно место, и был бы признателен если бы мне подсказали как правильно сделать без этого гемороя.
Суть проблемы в следующем: Есть табличка БД, с заполненными данными. Она подключена к "форме 2", которая вызывается из "формы 1". Задача перенести значения из двух столбцов "формы 2" в два столбца "формы 1". И чтобы при изменении значений в столбцах "формы 2" изменения также переносились в столбцы таблицы в "форме 1". Наверняка намного проще и правильнее сделать это через запросы. Но за неимением такого опыта я решил копировать содержание столбцов "формы 2" в массив, передавать массив в "форму 1" и данные из этого массива записывать в таблицу в "форме 1". Ну и столкнулся с вышеописанной проблемой. Подскажите решение пожалуйста, очень важный момент.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 28.10.2010, 14:58 [ТС] | |
|
Нет таблицы разные. Просто таблица на "форме 1" содержит два столба те же что и таблица на "форме 2". Но при этом данные в этих столбцах заносятся и редактируются только в таблице на "форме 2".
Задача, чтобы при изменении данных в таблице на "форме 2" эти же данные были и в таблице на "форме 1". Я пытался это реализовать через обмен массивами, но не смог.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 28.10.2010, 18:02 [ТС] | |
|
Нормально относится, я при формировании таблицы для каждого столбца поставил "Allow Nulls". А из базы в базу надо передавать только два первых столбца.
А вот почему первая строка пропадает я хоть убейте не пойму.
0
|
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
||
| 29.10.2010, 09:54 | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 29.10.2010, 16:02 [ТС] | |
|
К каждой форме привязан свой DataSet. Это две разных таблицы БД. Задача передавать данные из столбцов одной таблицы в столбцы другой.
0
|
|
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
|
| 30.10.2010, 10:03 [ТС] | |
|
А можно пример, как в ссылке передать значения конкретных столбцов?
0
|
|
|
|
|||||||||||
| 30.10.2010, 10:16 | |||||||||||
|
piloterist, вот привязался ты к этим столбцам
Приблизительный код на форме 2:
0
|
|||||||||||
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
||||||
| 30.10.2010, 10:59 [ТС] | ||||||
|
Какой идентификатор должен быть у "_ds"?
0
|
||||||
|
|
||
| 30.10.2010, 11:21 | ||
|
Если ты создавал подключение к БД автоматически, то там будет тип данных не DataSet, а какой-то другой (посмотри какого типа твой katalogPlanDataSet).
0
|
||
|
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
|
||||||
| 30.10.2010, 11:39 [ТС] | ||||||
|
На первой форме вместо MyDataSet я ставлю DataSet в который надо передавать данные и получаю ошибку: "Argument '1': cannot convert from 'RCSoneproduct.KatalogPlanDataSet9' to 'RCSoneproduct.KatalogPlanDataSet4' " (Dataset4 это на форме 2 в котором есть данные, Dataset9 на форме 1 в который передаю данные)
0
|
||||||
| 30.10.2010, 11:39 | |
|
Помогаю со студенческими работами здесь
20
При обновлении сводной таблицы в Excel он изменяет форматирование Автоматическое заполнение таблицы при обновлении поля штрихкода Зависание приложения при обновлении таблицы циклом по полям субформы Грамотная Блокировка записи при конкурентном обновлении таблицы Firebird Ошибка при обновлении данных в БД из DataGridView при определенном условии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|