Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 21.05.2021
Сообщений: 46

Ошибка синтаксиса в инструкции INSERT INTO

21.05.2021, 12:44. Показов 2541. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
            string query = "INSERT INTO order (client, product, [count]) VALUES ('" + comboBox1.Text + "', '" + comboBox2.Text + "', '" + textBox1.Text + "')";
            OleDbCommand command = new OleDbCommand(query, myConnection);
            command.ExecuteNonQuery();
            MessageBox.Show("Заказ добавлен");
            this.orderTableAdapter.Fill(this.dBDataSet.order);
Хочу взять значение с комбобокса и загрузить его в базу данных, но при нажатии кнопки с выше написанным кодом мне пишет: " Ошибка синтаксиса в инструкции INSERT INTO".
Забавно то, что данный код работал в предыдущей программе.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2021, 12:44
Ответы с готовыми решениями:

Ошибка синтаксиса в инструкции INSERT INTO
При нажатии на кнопку выдает ошибку "Ошибка синтаксиса в инструкции INSERT INTO" Ссылаясь на "command.ExecuteNonQuery();"...

Ошибка синтаксиса в инструкции INSERT INTO.
public partial class Form4 : Form { DataGridView dgv; public Form4() { ...

Ошибка синтаксиса инструкции INSERT INTO
Пишу свою курсовую работу, это интерфейс для БД ACCESS. Написала половину кода, везде работал следующий обработчик для добавления записи в...

12
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
21.05.2021, 13:05
Лучший ответ Сообщение было отмечено BokooBINU как решение

Решение

Насколько помню, order - зарезервированное слово sql и его нужно заключить в квадратные скобки.
И еще, советую вместо этого говнокода:
C#
1
('" + comboBox1.Text + "', '" + comboBox2.Text + "', '" + textBox1.Text + "')";
использовать параметры команды.
1
0 / 0 / 0
Регистрация: 21.05.2021
Сообщений: 46
21.05.2021, 13:43  [ТС]
Спасибо, братик! Названия полей и название таблицы окутал в квадратные скобки и заработало.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
21.05.2021, 14:10
C#
1
2
3
4
5
6
7
8
  string query = "INSERT INTO [order] (client, product, [count]) VALUES (@cl, @pr, @cn)";
            OleDbCommand command = new OleDbCommand(query, myConnection);
            command.Parameters.AddWithValue("@cl", comboBox1.Text);
            command.Parameters.AddWithValue("@pr", comboBox2.Text);
            command.Parameters.AddWithValue("@cn", Int32.Parse(TextBox1.Text));
            command.ExecuteNonQuery();
            MessageBox.Show("Заказ добавлен");
            this.orderTableAdapter.Fill(this.dBDataSet.order);
Вот так совсем правильно
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
21.05.2021, 14:51
C#
1
Int32.Parse(TextBox1.Text)
Когда вижу такое, то в голову приходит лишь один вопрос, почему в ВУЗах не учат привязкам данных?
Ведь WindowsForm (если не ошибаюсь, с версии .NET 2.0) тоже поддерживает эту технологию... Странно это всё...
0
0 / 0 / 0
Регистрация: 21.05.2021
Сообщений: 46
21.05.2021, 14:56  [ТС]
У нас в техе даже созданию этой программы не учили. Я ее создавал по видео из интернета. Хотя, между прочим, нам надо было ее сдавать в курсовом проекте.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
21.05.2021, 15:33
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Когда вижу такое, то в голову приходит лишь один вопрос, почему в ВУЗах не учат привязкам данных?
На самом деле там это не главный "ляп".
Больше поражает иное: почему нет справочников клиентов и продуктов, а если они есть, то почему в качестве ключевых атрибутов поиска используются наименования, а не id, ведь это так очевидно для любой 3N БД.

Ну и валидация, конечно.. Основное правило всех новичков - берем, что ввелось.
Учитывая, что сами же и вводят, все типо работает
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
21.05.2021, 15:50
MsGuns, ну справочники не всегда помогают. Осознанная деномарлизация данных присутствует всегда и везде
А именно про этот пример, то да, имея два справочника можно было-бы просто вставить ID продукта и ID клиента в заказ, и количество товара. И потом запросом с трёх таблиц выдать бланк счёта.
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
21.05.2021, 17:17
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Когда вижу такое, то в голову приходит лишь один вопрос, почему в ВУЗах не учат привязкам данных?
биндинг - это не концепция, ни паттерн, нахрен учить технологию, которая может умереть? (как собсна и мертв биндинг в формах)
И как Int32.Parse(TextBox1.Text) противоречит, например, mvc? Никак, поэтому не вижу причин так не писать
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
21.05.2021, 17:34
Цитата Сообщение от Рядовой Посмотреть сообщение
И как Int32.Parse(TextBox1.Text) противоречит, например, mvc?
Уже сам факт того, что для ввода числа используется TextBox, говорит о том, что человек не потрудился даже ознакомиться с тем, какие контролы есть в WinForms.
Цитата Сообщение от Рядовой Посмотреть сообщение
как собсна и мертв биндинг в формах
"Не дождетесь!"
0
0 / 0 / 0
Регистрация: 21.05.2021
Сообщений: 46
22.05.2021, 08:03  [ТС]
Может, вы мою программу проанализируете на наличие ошибок? А то пол темы столько дискуссий.
Вложения
Тип файла: rar SuhAnd.rar (9.39 Мб, 8 просмотров)
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
22.05.2021, 12:56
Цитата Сообщение от BokooBINU Посмотреть сообщение
Может, вы мою программу проанализируете на наличие ошибок
Ошибки не укажу, ибо у меня нет возможности запустить Ваше приложение.
А вот прокомментировать Ваш код можно.

Комментировать ?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
24.05.2021, 11:25
Цитата Сообщение от BokooBINU Посмотреть сообщение
проанализируете на наличие ошибок?
Цитата Сообщение от MsGuns Посмотреть сообщение
А вот прокомментировать Ваш код можно.
Прожарка? Люблю!
Можно я, можно я начну?

Глянул код, добрался до открытия 2-й формы, дальше решил пока не смотреть.
А что же там не так?
Ну вот. Создаем мы экземпляр класса Form2 и отображаем на экране, главную же форму прячем:
C#
1
2
3
4
5
6
private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.Show();
    Hide(); //спрятали главную форму
}
Все нормально, все хорошо.
А вот что мы делаем при закрытии 2-й формы (код в классе Form2):
C#
1
2
3
4
5
6
private void button4_Click(object sender, EventArgs e)
{
    Form1 f1 = new Form1(); //создали еще один экземпляр класса Form1
    f1.Show(); //и показали его
    Close();
}
Т.е. мы создаем еще один экземпляр класса Form1 и показываем его.
А что же с главной формой спрятанной, спросите вы! А ничего - она всё еще прячется. В итоге при работе программы каждое открытие одной из дополнительных форм добавляет висящий в памяти спрятанный экземпляр Form1.
А как поступил бы я, к примеру?
А вот так (весть код в классе Form1):
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2(); //создали экземпляр Form2
    f2.FormClosed += F2_FormClosed; //подписались на событие его закрытия
    f2.Show(); //показали f2
    Hide(); //главную спрятали
}
 
private void F2_FormClosed(object sender, FormClosedEventArgs e) //при закрытии f2
{
    this.Show(); //отобразили спрятанную ранее главную форму
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2021, 11:25
Помогаю со студенческими работами здесь

Ошибка синтаксиса в инструкции INSERT INTO
Всем привет, можно попросить помощи с доработкой запроса. string com = comboBox1.Text.Split(' '); int id =...

Ошибка синтаксиса в инструкции INSERT INTO
private void button6_Click(object sender, EventArgs e) { OleDbConnection myOleDbConnection = new...

Ошибка синтаксиса в инструкции INSERT INTO
Вылазит ошибка Ошибка синтаксиса в инструкции INSERT INTO. Уже многое пробовал, ничего не помогает. Может кто-нибудь знает, что делать?...

Ошибка синтаксиса в инструкции INSERT INTO
Добрый вечер! Помогите пожалуйста. Есть база на Access. Надо через форму C# добавить данные. В Departament добавляет без проблем. При...

Ошибка синтаксиса в инструкции INSERT INTO
Я уже неоднократно писал про БОЛЬШУЮ, просто ОГРОМНУЮ проблему при добавлении записей в БД. Сегодня я опять весь день боролся с этим....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru