Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220

Создание нового DataRow и ошибка "Нарушение параллелизма"

25.08.2014, 22:45. Показов 1648. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем.

Подскажите пожалуйста при создании новой строки в таблице выскакивает ошибка

Нарушение параллелизма :UpdateCommand затронула 0из ожидаемых 1 записей.


подскажите пожалуйста кто знает. Вот код:

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
25
26
27
28
29
30
31
32
33
34
35
            using( SQLiteConnection con = new SQLiteConnection ( "Data Source=lesson3.db" ) )
                {
                try
                    {
                    DataRow r=paren.ds1.Tables["Teacher"].NewRow();
                        
                        int i=paren.ds1.Tables["Teacher"].Rows.Count;
                        paren.ds1.Tables["Teacher"].Rows.Add(r);
                       
                        paren.dataAdapterTeacher.UpdateCommand = paren.cbT.GetUpdateCommand ();
                        paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" );
                        SQLiteCommand com1 = new SQLiteCommand("select last_insert_rowid()",paren.con1);
                        String str1 = com1.ExecuteScalar().ToString();
                        SQLiteDataReader dr1 = com1.ExecuteReader ();
                        r["id"] = str1;
                         r["Name"] = textBoxAddName.Text;
                        r[ "Surname" ] = textBoxAddSurname.Text;
                        r[ "id_Teacher" ] = textBoxIDTeacher.Text;
                        MessageBox.Show("" + i, "");
                        String str = i.ToString();
                        
                    //con.Open ();
                    //SQLiteCommand com=new SQLiteCommand( "INSERT INTO Teacher(Name,Surname,id_Teacher) VALUES('"+textBoxAddName.Text+"','"+textBoxAddSurname.Text+"','"+textBoxIDTeacher.Text+"')", con );
                    //SQLiteDataReader dr = com.ExecuteReader ();
                    //com.Dispose();
                       
                    MessageBox.Show("Ваш последний id="+ str1, "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   
                    }
                catch( Exception ex )
                    {
                    MessageBox.Show ( ex.Message );
                    }
                }   
            Close ();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2014, 22:45
Ответы с готовыми решениями:

Ошибка: «Нарушение параллелизма: UpdateCommand затронула 0 из ожидаемых 1 записей.»?
Я сохраняю изменения в базе по нажатию на кнопку, вот сам код: else if (comboBox1.SelectedItem == "Элек") { label3.Text...

Ошибка: Нарушение параллелизма: UpdateCommand затронула 0 из ожидаемых 1 записей
Я сохраняю изменения в базе по нажатию на кнопку, вот сам код: else if (comboBox1.SelectedItem == "Элек") { label3.Text...

Из-за чего в консоли выводится ошибка "Нарушение параллелизма: UpdateCommand затронула 0 из ожидаемых 1 записей"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; using System.Data;...

7
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.08.2014, 06:35
mixon-21, Ваша UpdateCommand ни чего не обновила на сервере, хотя должны была обновить одну запись. Покажите, какой запрос вы посылаете на сервер. В вашем коде бы берете UpdateCommand целиком из какого то непонятного объекта paren.cbT.
0
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
26.08.2014, 09:02  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение
mixon-21, Ваша UpdateCommand ни чего не обновила на сервере, хотя должны была обновить одну запись. Покажите, какой запрос вы посылаете на сервер. В вашем коде бы берете UpdateCommand целиком из какого то непонятного объекта paren.cbT.

запрос на сервер

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
     public  SQLiteConnection con1 = null;
   public     SQLiteDataAdapter dataAdapterTeacher;
   public     SQLiteCommandBuilder cbT;
   public     DataSet ds1;
 
        public FormDataBase()
            {
                con1 = new SQLiteConnection("Data Source=lesson3.db");
                dataAdapterTeacher = new SQLiteDataAdapter ( "SELECT * FROM Teacher", con1 );
                ds1 = new DataSet();
                cbT = new SQLiteCommandBuilder ( dataAdapterTeacher );
            con1.Open();
            InitializeComponent ();
            }
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.08.2014, 11:18
mixon-21, в таком случае вышеупомянутая строка не нужна. CommandBuilder в теории должен сам подставлять команды в DataAdapter по мере необоходимости. Но проблема возникает не из-за этого. На какой строке возникает ошибка? paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" )? Самое интересное, что приведенный код до выполнения Update не вносит в DataSet изменений, которые бы инициировали вызов UpdateCommand. Должна вызываться только InsertCommand. Между ds1 = new DataSet() и paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" ) данные в DataSet изменяются?
1
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
26.08.2014, 14:58  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение
На какой строке возникает ошибка? paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" )?
Да вы правы ошибка возникает на этой строке.

Подскажите как исправить ошибку.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.08.2014, 18:54
Лучший ответ Сообщение было отмечено mixon-21 как решение

Решение

Цитата Сообщение от kodv Посмотреть сообщение
Между ds1 = new DataSet() и paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" ) данные в DataSet изменяются?
Так и не увидел ответа на этот вопрос. Если ответ нет, то попробуйте так:
C#
1
2
3
4
5
paren.ds1.Tables["Teacher"].RejectChanges();
DataRow r=paren.ds1.Tables["Teacher"].NewRow();
int i=paren.ds1.Tables["Teacher"].Rows.Count;
paren.ds1.Tables["Teacher"].Rows.Add(r);
// и т.д.
Это, конечно, "костыль", но не обладая проектом, сложно предполжить, от куда в DataTable появляется измененная строка, когда вы в DataTable строку не изменяете, а вставляете.
1
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
26.08.2014, 19:39  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение
Сообщение от kodv
Между ds1 = new DataSet() и paren.dataAdapterTeacher.Update ( paren.ds1, "Teacher" ) данные в DataSet изменяются?
Так и не увидел ответа на этот вопрос. Если ответ нет, то попробуйте так:

Добавляется строка но не сохраняеться.

Добавлено через 3 минуты
Это, конечно, "костыль", но не обладая проектом, сложно предполжить, от куда в DataTable появляется измененная строка, когда вы в DataTable строку не изменяете, а вставляете.
Правильно надо до существующей таблицы добавлять строки. Такое задание.

Добавлено через 12 минут
Подскажите пожалуйста почему он не показывает id. Показывает после перезагрузки програмы?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.08.2014, 21:53
Лучший ответ Сообщение было отмечено mixon-21 как решение

Решение

Могу предположить, что функция last_insert_rowid ни чего не возвращает. Пройдитесь отладчиком по своему коду, посмотрите, где, что и куда присваивается. Без полного кода я могу только гадать, с чем может быть связано то или иное поведение программы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2014, 21:53
Помогаю со студенческими работами здесь

Нарушение параллелизма
Всем доброго дня!По данной проблеме читал все ветки в данном разделе,но решение проблемы своей не нашёл. Записываю данные в DatagridView...

Нарушение параллелизма
Здравствуйте еще раз, много тем видел на форуме но так и не смог решить эту проблему. Есть такой вот код private void...

Нарушение параллелизма
Здравствуйте. возникла ошибка. добавляю данные в грид. запись добавляется с id -1, при закрытии приложения и запуске запись имеет...

Нарушение параллелизма UpdateCommand
Здравствуйте. Возникла проблема с обновлением бд. В БД таблицы связаны связью 1 ко многим. Удаление и обновление установлено на...

Нарушение параллелизма: DELETECOMMAND
Накидал примерный код, который надо допилить. public partial class Form1 : Form { ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru