Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43

Удаление текущей записи

17.10.2009, 14:31. Показов 4576. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! проблема такая копирую с журнала в архив данные и запись с которой производилось копирование удаляю. все работает но есть одно но. Если запись добавленна и сразуже копируеться в архив, то с журнала она ее не может удалить, выходит ошибка:
C#
1
Нарушение параллелизма: DeleteCommand затронула 0 из ожидаемых 1 записей.
код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//данные с журнала
                var gurnalROW = (begoDataSet_gurnal.blank_obshijRow)((DataRowView)Form1.Instance.blankobshijBindingSource.Current).Row;
                // Создаем новую запись в архиве
                Form1.Instance.arxivblankovBindingSource.AddNew();
                //Получаем данные с этой строки
                var arxivROW = (begoDataSet_arxiv.arxiv_blankovRow)((DataRowView)Form1.Instance.arxivblankovBindingSource.Current).Row;
                
                ...
                //присваеваю все данные
                ...
                
                 //сохраняем запись в архиве
                Validate();
                Form1.Instance.arxivblankovBindingSource.EndEdit();
                Form1.Instance.arxiv_blankovTableAdapter.Update(Form1.Instance.begoDataSet_arxiv);
                // Удаляем текущюю запись в журнале
                Form1.Instance.blankobshijBindingSource.RemoveCurrent();
                //Сохраняем журнал
                Validate();
                Form1.Instance.blankobshijBindingSource.EndEdit();
                Form1.Instance.blank_obshijTableAdapter.Update(Form1.Instance.begoDataSet_gurnal); //ругаеться тут
Обьясните почему так получается? и как это исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2009, 14:31
Ответы с готовыми решениями:

Удаление текущей строки из DataGridView
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; ...

Возвращение текущей записи dataset
Здравствуйте, подскажите пожалуйста как вернуть текущую запись dataset или черз что это реализовать?/так как я вычитал что даттасет не...

Определение текущей учетной записи Windows
Всем привет! Хочу написать программу для многопользовательского доступа. В БД access есть таблица с логинами и паролями учётных...

19
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
19.10.2009, 15:57  [ТС]
никто не знает почему так?
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
20.10.2009, 02:41
Нужна схема DataSet. Таблицы, связи. Там причина
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
21.10.2009, 01:52  [ТС]
Есть begoDataSet_arxiv в ней одна таблица и begoDataSet_gurnal в ней другая таблица. в каждой из таблиц есть ключевое поле ID. связей нет.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
21.10.2009, 04:39
посмотрите какие данные попадают в delete запрос. как выглядит запрос?
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
21.10.2009, 11:07  [ТС]
Удаляю текущюю строку. Запрос делался мастером.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
22.10.2009, 02:49

Не по теме:

Действительно, странно.. в delete запросе и вдруг удаляется строка..


В режиме отладки посмотрите какие значения у удаляемой строки. Видимо, поле id имеет неправильное значение.
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
22.10.2009, 15:06  [ТС]
Полю id значение даеться автоматически. я его нигде не меняю и не указываю.
0
 Аватар для Mike
18 / 18 / 2
Регистрация: 20.01.2009
Сообщений: 71
22.10.2009, 20:13
курите MSDN про использование оптимистичного параллелизма.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
23.10.2009, 04:24
Цитата Сообщение от Rumina Посмотреть сообщение
Полю id значение даеться автоматически. я его нигде не меняю и не указываю
Я и неговорю, что вы его меняете. Поставьте брекпойнт на строку, в которой происходит удаление строки. Найти удаляемую строку и посмотреть значение в поле id.
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
23.10.2009, 21:35  [ТС]
Цитата Сообщение от Green Посмотреть сообщение
Найти удаляемую строку и посмотреть значение в поле id.
Я не совсем понимаю как это сделать? обьясните пожалуйста

Добавлено через 8 минут
И еще хотела спросить. у меня такая ситуация. если даже приложение пере запускаю и делаю тоже самое, то выходит ошибка такая:
Эта строка удалена из таблицы и не содержит данных. BeginEdit() позволит создать в этой строке новые данные.
вот код где указываеться ошибка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            public string name {
                get {
                    try {
                        return ((string)(this[this.tableblank_obshij.nameColumn]));//ТУТ УКАЗЫВАЕТ НА ОШИБКУ
                    }
                    catch (global::System.InvalidCastException e) {
                        throw new global::System.Data.StrongTypingException("Значение для столбца \'name\' в таблице \'blank_obshij\' равно DBNull.", e);
                    }
                }
                set {
                    this[this.tableblank_obshij.nameColumn] = value;
                }
            }
ПОЖАЛУЙСТА ПОМОГИТЕ РАЗОБРАТЬСЯ В ЭТИХ ДВУХ ОШИБКАХ.
Как мне исправить эти две ошибки? Подскажите кто знает

Добавлено через 2 минуты
И ошибка эта на все столбцы указывает
C#
1
2
("Значение для столбца \'name\' в таблице \'blank_obshij\' равно DBNull.", e);
("Значение для столбца \'data_zakaza\' в таблице \'blank_obshij\' равно DBNull.", e);
и так дальше.
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
24.10.2009, 17:14  [ТС]
Цитата Сообщение от Green Посмотреть сообщение

Не по теме:

Действительно, странно.. в delete запросе и вдруг удаляется строка..


В режиме отладки посмотрите какие значения у удаляемой строки. Видимо, поле id имеет неправильное значение.
Опишите пожалуйста подробно как мне это сделать???
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
26.10.2009, 10:56
Выделяешь строку, нажимаешь F9 , появляется красная точка слева (брейкпоинт), затем в режиме отладки клавишами F10,F11 и т п, бегаешь по программе
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
26.10.2009, 15:04  [ТС]
Указала на этот код.
C#
1
2
3
4
5
6
7
8
9
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter {
            get {
                if ((this._adapter == null)) {
                    this.InitAdapter();
                }
                return this._adapter;
            }
        }
А что с ним делать?
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
26.10.2009, 16:14
Установите на эту строку
C#
1
Form1.Instance.blank_obshijTableAdapter.Update(Form1.Instance.begoDataSet_gurnal); //ругаеться тут
Запускаете, как дойдет до точки остановки, выделяете код Form1.Instance.begoDataSet_gurnal. Жмете правую кнопку мыши -> Quick watch. Исследуете.. ищите нужную таблицу, нужную строку..
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
26.10.2009, 22:55  [ТС]
Цитата Сообщение от Green Посмотреть сообщение
Установите на эту строку
C#
1
Form1.Instance.blank_obshijTableAdapter.Update(Form1.Instance.begoDataSet_gurnal); //ругаеться тут
Запускаете, как дойдет до точки остановки, выделяете код Form1.Instance.begoDataSet_gurnal. Жмете правую кнопку мыши -> Quick watch. Исследуете.. ищите нужную таблицу, нужную строку..
А где про это можно почитать посмотреть, желательно наглядно.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
27.10.2009, 02:57
Давайте вернемся к основному вопросу темы.
Напишите, как разберетесь, какое значение id у удаляемой строки.
Если я правильно понимаю, новая созданная строка не записывается в основную БД. После вставки новой строки в программе вызывайте blank_obshijTableAdapter.Update(), чтобы строка записалась в БД. И только потом переходите к ее удалению.
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
27.10.2009, 18:17  [ТС]
Сохранение выполняеться раньше выложенного кода таким образом
C#
1
2
3
4
//Сохраняем журнал
                Validate();
                Form1.Instance.blankobshijBindingSource.EndEdit();
                Form1.Instance.blank_obshijTableAdapter.Update(Form1.Instance.begoDataSet_gurnal);
Потом выполяеться копирование и удаление. в базе посмотрела id имеет уникальное число.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
28.10.2009, 06:22
Цитата Сообщение от Rumina Посмотреть сообщение
в базе посмотрела id имеет уникальное число.
в базе оно нормальное, а вот в программе похоже нет.

Покажите insert-запрос, который сгенерировала студия.
0
3 / 3 / 2
Регистрация: 21.09.2009
Сообщений: 43
28.10.2009, 11:36  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
this._adapter.InsertCommand.CommandText = "INSERT INTO [blank_obshij] ([name], [data_zakaza], [kod_zubov], [frezirovka_po_vo" +
                "sku], [slepok_antogonist], [shablon_antogonist], [stenka_zamka_stekla], [frezero" +
                "vka_po_metallu], [polirovka_frezerovki], [plan_konstrukcii_picture], [dublirovan" +
                "ie], [modelirovanie], [podgotovka_k_posadke], [posadka], [obrabotka], [polirovka" +
                "], [gipsovka_v_okuldator], [postanovka], [desna_slepok], [desna_na_primerku], [o" +
                "bezgirovanie_izokol_konolor], [varka], [obrabotka_polirovka], [bizon], [sdacha]," +
                " [spec1], [spec2], [spec3], [spec4], [spec5], [spec6], [spec7], [spec8], [spec9]" +
                ", [spec10], [spec11], [spec12], [spec13], [spec14], [spec15], [spec16], [spec17]" +
                ", [spec18], [spec19], [spec20], [vrach], [ustanovka_zamkov], [vixod_k_shtiftu], " +
                "[visverlivanie], [gravirovka], [do_kolpachkov], [podbor_garnituri], [data_naz_sd" +
                "achi]) VALUES (@name, @data_zakaza, @kod_zubov, @frezirovka_po_vosku, @slepok_an" +
                "togonist, @shablon_antogonist, @stenka_zamka_stekla, @frezerovka_po_metallu, @po" +
                "lirovka_frezerovki, @plan_konstrukcii_picture, @dublirovanie, @modelirovanie, @p" +
                "odgotovka_k_posadke, @posadka, @obrabotka, @polirovka, @gipsovka_v_okuldator, @p" +
                "ostanovka, @desna_slepok, @desna_na_primerku, @obezgirovanie_izokol_konolor, @va" +
                "rka, @obrabotka_polirovka, @bizon, @sdacha, @spec1, @spec2, @spec3, @spec4, @spe" +
                "c5, @spec6, @spec7, @spec8, @spec9, @spec10, @spec11, @spec12, @spec13, @spec14," +
                " @spec15, @spec16, @spec17, @spec18, @spec19, @spec20, @vrach, @ustanovka_zamkov" +
                ", @vixod_k_shtiftu, @visverlivanie, @gravirovka, @do_kolpachkov, @podbor_garnitu" +
                "ri, @data_naz_sdachi)";
                
                
                this._adapter.InsertCommand.CommandText = @"INSERT INTO [dbo].[Table_warehouse] ([name], [data_pokupki], [kolichestvo], [cena_za_shtuku], [cena_za_obshaja]) VALUES (@name, @data_pokupki, @kolichestvo, @cena_za_shtuku, @cena_za_obshaja);
SELECT ID, name, data_pokupki, kolichestvo, cena_za_shtuku, cena_za_obshaja FROM Table_warehouse WHERE (ID = SCOPE_IDENTITY())";
а может это связа на с другой ошибкой и её надо решить а потом и эта исчезнет?(я имею ввиду которая выходит даже после перезапуска программы BeginEdit())

Добавлено через 23 минуты
В мастере таблиц установила галочку обновить таблицу данных и первая ошибка исчезла УРА!!! Осталось разобраться со 2й ошибкой

Добавлено через 11 секунд
В мастере таблиц установила галочку обновить таблицу данных и первая ошибка исчезла УРА!!! Осталось разобраться со 2й ошибкой

Добавлено через 23 минуты
Выходит такая ошибка при копировании из журнала в архив и удаления записи с журнала. Не зависимо когда происходит это действие сразу после добавления записи в журнал или после перезапуска программы.
Посоветуйте пожалуйста в чем может быть причина???
Скрин:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2009, 11:36
Помогаю со студенческими работами здесь

Gridview убрать выделение текущей записи
Здравствуйте! Нигде не могу найти ответа на вопрос и здравого выхода из ситуации. Как убрать курсор из gridview. Чтобы стало более понятно...

Удаление текущей записи
Всем привет! Подскажите как можно удалить текущую запись с помощью кнопки?? Чтобы также поменялись числа в строки состоянии, а не просто...

Удаление текущей записи из файла
Добрый день. Имеется файл, выведенный в СтрингГрид. Нужно осуществить удаление текущей записи из файла. Как это сделать с помощью...

Удаление текущей записи ADOTable...
Доброго всем времени суток! Есть база данных Access, подключаюсь, через ADOconection и привязываю к базе ADOTable. Для отображения данных...

Кнопка, отвечающая за удаление текущей записи из таблицы
Помогите написать обработчик событий для кнопки, отвечающей за удаление текущей записи из таблицы в borland c++ :)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru