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

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

21.12.2022, 16:25. Показов 2054. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        private void button1_Click(object sender, EventArgs e)
        {
            int code = Convert.ToInt32(textBox1.Text);
            string query = "UPDATE Студенты SET Адрес проживания ='" + textBox2.Text + "'WHERE [Код студента] =" + code;
            string query1 = "UPDATE Студенты SET Номер телефона ='" + textBox3.Text + "'WHERE [Код студента] =" + code;
            string query2 = "UPDATE Студенты SET Группа ='" + textBox4.Text + "'WHERE [Код студента] =" + code;
            string query3 = "UPDATE Студенты SET Форма обучения ='" + textBox5.Text + "'WHERE [Код студента] =" + code;
            string query4 = "UPDATE Студенты SET Стипендия ='" + textBox6.Text + "'WHERE [Код студента] =" + code;
            OleDbCommand command = new OleDbCommand(query, myConnection);
            OleDbCommand command1 = new OleDbCommand(query1, myConnection);
            OleDbCommand command2 = new OleDbCommand(query2, myConnection);
            OleDbCommand command3 = new OleDbCommand(query3, myConnection);
            OleDbCommand command4 = new OleDbCommand(query4, myConnection);
            command.ExecuteNonQuery();
            command1.ExecuteNonQuery();
            command2.ExecuteNonQuery();
            command3.ExecuteNonQuery();
            command4.ExecuteNonQuery();
            MessageBox.Show("Изменения внесены");
            this.студентыTableAdapter.Fill(this._Collega_2002_2003_DataSet.Студенты);
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2022, 16:25
Ответы с готовыми решениями:

Ошибка синтаксиса в инструкции UPDATE
Есть код con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=turagenstvo1_13.mdb"); ...

Ошибка синтаксиса в инструкции UPDATE
Помогите пожалуйста найти ошибку. В упор не вижу, что не так myConnection = new OleDbConnection(conn); ...

Ошибка синтаксиса в инструкции UPDATE
Добрый день! Я только начинаю изучать c#, пишу консольное приложение. При вводе с клавиатуры строки типа "-edit 3...

30
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
28.12.2022, 07:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
Используйте итерполяцию строк, это выглядит куда проще
Не проще. В случае ручной сборки параметров придётся самостоятельно решать проблемы с:
1. Экранированием.
2. Форматами, зависящими от региональных настроек.
3. Рисками SQL Injection.

В случае использования именованного параметра (с правильным типом), нужно просто создать именованный параметр со значением.
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,768
Записей в блоге: 4
28.12.2022, 08:18
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
C#
1
string query = $@"UPDATE Студенты SET Адрес проживания = {textBox2.Text} WHERE [Код студента] = {code}";
И в поле Адрес проживания на форме ввести вот такое
T-SQL
1
N''; DROP DATABASE MyDatabase; --
И хана вашей БД.
0
 Аватар для xxPRIMExx
1556 / 844 / 46
Регистрация: 18.02.2010
Сообщений: 4,149
28.12.2022, 14:00
Цитата Сообщение от kotelok Посмотреть сообщение
Не проще. В случае ручной сборки параметров придётся самостоятельно решать проблемы с:
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
И в поле Адрес проживания на форме ввести вот такое
Мы говорим об учебном коде или продакшине? кто вообще в здравом уме будет из текстбокса вставлять данные в запрос?
На проде используют или EntityFramework или обертки которые апдейтят ентити заполняя соответствующие поля.

Почему-то никто не сказал ТС что нужно в принципе валидировать то что из тексбокса приходит, и то что это явный какой-то костыль, о том что есть такая штука как Маппинг - ТС в курсе?
1
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,768
Записей в блоге: 4
28.12.2022, 14:02
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
Почему-то никто не сказал ТС что нужно в принципе валидировать то что из тексбокса приходит
Ему показали параметры, этого в 90% случаев достаточно.
0
 Аватар для xxPRIMExx
1556 / 844 / 46
Регистрация: 18.02.2010
Сообщений: 4,149
28.12.2022, 14:04
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Ему показали параметры, этого в 90% случаев достаточно.
Ну пускай так, значит у меня уже проф-деформация ) И таки да, я итерполяцию строк не для ввода с UI использую
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,768
Записей в блоге: 4
28.12.2022, 14:18
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
И таки да, я итерполяцию строк не для ввода с UI использую
Не важно откуда её использовать, ввести команды SQL можно из любого места.
0
28.12.2022, 14:34

Не по теме:

Цитата Сообщение от xxPRIMExx Посмотреть сообщение
кто вообще в здравом уме будет из текстбокса вставлять данные в запрос?
В ЛК моего маленького провайдера, если при заполнении формы заявки добавить в текст апострофы, то по кнопке отправки заявки ЛК падает с SQL-ошибкой ).

0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,768
Записей в блоге: 4
28.12.2022, 14:44
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
кто вообще в здравом уме будет из текстбокса вставлять данные в запрос?
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
C#
1
string query = $@"UPDATE Студенты SET Адрес проживания = {textBox2.Text} WHERE [Код студента] = {code}";
Ваше?
1
 Аватар для xxPRIMExx
1556 / 844 / 46
Регистрация: 18.02.2010
Сообщений: 4,149
28.12.2022, 18:37
Andrey-MSK,
Засерать тему нет желания, структура которую я предложил очень удобна, но нужно понимать где это можно использовать а где нет.
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,768
Записей в блоге: 4
29.12.2022, 08:34
Цитата Сообщение от xxPRIMExx Посмотреть сообщение
структура которую я предложил очень удобна
Введите вот такое по вашему варианту
C#
1
2
3
4
5
6
7
8
9
10
SqlParameter pUnitPrice = new SqlParameter
{
    ParameterName = "@unitPrice",
    Value = detail.UnitPrice.Value,
    SqlDbType = SqlDbType.Decimal,
    Precision = 18,
    Scale = 4,
    Direction = ParameterDirection.Input
};
sqlCommand.Parameters.Add(pUnitPrice);
Запаритесь конвертировать из текста и еще поймаете кучу ошибок с несовместимостью типов.
Или вот такое
C#
1
2
3
4
5
6
7
8
SqlParameter pCDate = new SqlParameter
{
    ParameterName = "@contractDate",
    Value = contract.ContractDate.Date,
    SqlDbType = SqlDbType.DateTime,
    Direction = ParameterDirection.Input
};
sqlCommand.Parameters.Add(pCDate);
Лучше один раз освоить параметры и потом не знать никаких проблем с типизацией данных.
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
29.12.2022, 11:38
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
с типизацией данных
ну если все делать руками
то проблемы будут большие да...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2022, 11:38

Ошибка синтаксиса в инструкции UPDATE
Ошибка: System.Data.OleDb.OleDbException: "Ошибка синтаксиса в инструкции UPDATE." System.Data.OleDb.OleDbException ...

Ошибка синтаксиса в инструкции UPDATE
Доброго времени суток, уважаемый форум! Возникла такая проблема: 1. Имеется: база данных «students», созданная в MS Access 2003,...

Ошибка синтаксиса в инструкции UPDATE
Добрый вечер Помогите правильно передать запрос UPDATE в базу ACCESS Запрос: OleDbConnection dbCon = new...

Ошибка синтаксиса в инструкции UPDATE
Подскажите пожалуйста в чем может быть проблема. В аксесе запрос работает норм. OleDbConnection con = new...

Ошибка синтаксиса в инструкции UPDATE MS Access
Странно, почему то не работает, м.б. кто то ошибку видит? Суть заключается в том, что таблицу можно менять во время использования...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru