Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
disqrl

Для элемента Update требуется действительный InsertCommand при передаче коллекции DataRow

07.05.2014, 11:56. Показов 1300. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет) Люди помогите с кодом не пойму чего программа хочет.
Написал программу на Visual C++ 2010 Express. Программа должна работать
с базой данных которая сделана на Access. (Нужно чтобы она сохраняла)
Но во время сохранения она выдаёт ошибку я прогуглил но так и ничего не нашёл (яндекс тоже мне ничего не нашёл).

Вот сам код
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#pragma endregion
        DataSet ^ НаборДанных;
        OleDb::OleDbDataAdapter ^ Адаптер;
        OleDb::OleDbConnection ^ Подключение;
        OleDb::OleDbCommand ^ Команда;
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
                 dataGridView1 -> Visible = false;
                 button1 -> Visible = false;
                 button2 -> Visible = false;
                 button3 -> Visible = false;
                 textBox2 -> PasswordChar='*';
                 НаборДанных = gcnew DataSet();
                 Подключение = gcnew OleDb::OleDbConnection("Data Source=\"pip.mdb\";User " +
                     "ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
                 Команда = gcnew OleDb::OleDbCommand();
             }
private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e) {
             if (textBox1 -> Text == "Администратор" && textBox2 -> Text == "1234567890")
             {
                 dataGridView1 -> Visible = true;
                 button1 -> Visible = true;
                 button2 -> Visible = true;
                 button3 -> Visible = true;
                 textBox1 -> Visible = false;
                 textBox2 -> Visible = false;
                 label1 -> Visible = false;
                 label2 -> Visible = false;
                 button5 -> Visible = false;
             }
             if ( textBox1 -> Text == "Администратор" && textBox2 -> Text != "1234567890")
             {
                 MessageBox::Show("Неправильный пароль!");
             }
             if ( textBox1 -> Text != "Администратор" && textBox2 -> Text != "1234567890")
             {
                 MessageBox::Show("Неправильный логин и пароль!");
             }
             if ( textBox1 -> Text != "Администратор" && textBox2 -> Text == "1234567890")
             {
                 MessageBox::Show("Неправильный логин!");
             }
         }
         
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) {
             if ( dataGridView1 -> Visible == false)
             {
             this -> Close();
             }
             else
             {
            
                 auto MeBox = MessageBox::Show("Вы уверенны что хотите выйти?",
                 "База данных", MessageBoxButtons::YesNo, MessageBoxIcon::Exclamation);
                 if (MeBox == Windows::Forms::DialogResult::No) return;
                 if (MeBox == Windows::Forms::DialogResult::Yes)
                 {
                     Close();
                 }
             }
         }
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
             if (Подключение->State == ConnectionState::Closed) Подключение->Open();
             Адаптер = gcnew OleDb::OleDbDataAdapter("Select * From [Товары]", Подключение);
             // Заполняем DataSet результатом SQL-запроса
             Адаптер->Fill(НаборДанных, "Товары");
             // Содержимое DataSet в виде строки XML для отладки:
             String ^ СтрокаXML = НаборДанных->GetXml();
             // Указываем источник данных для сетки данных:
             dataGridView1->DataSource = НаборДанных;
             // Указываем имя таблицы в наборе данных:
             dataGridView1->DataMember = "Товары";
             
             Подключение->Close();
         }
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
             Команда->CommandText = "UPDATE [Auto] , WHERE Код = ?, SET Наименование = ?, Количество = ?, Дата поступления = ?, Цена = ?";
             // Имя, тип и длина параметра
             Команда->Parameters->Add("Код", OleDb::OleDbType::VarWChar, 50, "Код");
 
             Команда->Parameters->Add("Наименование", OleDb::OleDbType::VarWChar, 50, "Наименование");
 
             Команда->Parameters->Add("Количество", OleDb::OleDbType::VarWChar, 50, "Количество");
             
             Команда->Parameters->Add("Дата поступления", OleDb::OleDbType::VarWChar, 50, "Дата поступления");
 
             Команда->Parameters->Add("Цена", OleDb::OleDbType::VarWChar, 50, "Цена");
 
             Адаптер->UpdateCommand = Команда;
             Команда->Connection = Подключение;
 
             try
             {
             // Update возвращает количество измененных строк
                 int kol = Адаптер->Update(НаборДанных, "Товары");
                 MessageBox::Show("Обновлено " + kol + "записей");
             }
 
             catch (Exception ^ Ситуация)
             { MessageBox::Show(Ситуация->Message, "Недоразумение"); }
             
         }
};
Сама программа (базу данных я уже открыл)



Ошибка



 Комментарий администратора 
Загружайте изображения и файлы на форум и прикрепляйте к сообщению.
https://www.cyberforum.ru/abou... post594251
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2014, 11:56
Ответы с готовыми решениями:

Для обновления требуется действительный UpdateCommand при передаче коллекции DataRow с измененными строками
Есть задание "Рассмотрим следующую информацию об «обитателях» зоопарка: – о животных живущих в нем (вид, род, семейство, кличка, год...

Ошибка при Update "Update requires a valid InsertCommand when passed DataRow collection with new rows"
Доброго времени суток! Я в этом всем новичек и поэтому совсем не могу понять в чем ошибка. В общем, имеется вот такой код: ...

Для элемента update требуется действительный deletecommand
Доброго времени суток! Возникла следующая проблема, при работе с SqlDataAdapter. Я прописал команды (Delete,Insert,Update) для...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2014, 11:56
Помогаю со студенческими работами здесь

"Для элемента Update требуется действительный DeleteCommand" при удалении строки из БД
При попытке удалить строку из базы данных acces выдает такую ошибку Для элемента Update требуется действительный DeleteCommand при...

Datagridview не сохраняется в базу: требуется действительный InsertCommand
Я сделала приложение-анкету, информация из TextBox и RadioButton сохраняется в datagridview, по нажатию на кнопку "Продолжить"...

Не получается сделать Update (Update requires a valid InsertCommand)
Не получается сделать Update выдаёт ошибку, что делаю не так? В таблице только одно поле, оно строковое. public void...

Ошибка при сохранении БД "Для обновления требуется действительный UpdateCommand"
Здравствуйте. Подскажите, что может быть..У меня есть база.. Там есть строка "Телефон". Так вот. Когда из Источника данных я...

Ошибка при обновлении данных "Для обновления требуется действительный UpdateCommand"
Народ, помогите! Непонятно почему, при обновлении базы данных вдруг появилось сообщение "Для обновления требуется действительный...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru