Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.03.2024
Сообщений: 122
1
MS Access

Запрос update ошибка синтаксиса

20.04.2024, 16:27. Показов 715. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, сделал через параметры запрос update, но пишет ошибка синтаксиса.
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
int index = dataGridView1.SelectedRows[0].Index;
 
            string id = dataGridView1.Rows[index].Cells[0].Value.ToString();
            con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Database11.accdb");
            cmd = new OleDbCommand();
            con.Open();
            cmd.Connection = con;
 
            if (id!= null && textBox1.Text != null && textBox2.Text != null && textBox3.Text != null && textBox4.Text != null && textBox5.Text != null)
             {
                label8.Text = "значения заполнены";
            }
 
 
            string query = "UPDATE clients_info SET name1 = @Value2, female1 = @Value3, fefemale1 = @Value4, date = @Value5, number2 = @Value6 where id = @Value1";
            OleDbCommand dbCommand = new OleDbCommand(query, con);
            OleDbDataReader dbReader = dbCommand.ExecuteReader();
 
            dbCommand.Parameters.AddWithValue("@Value1", id);
            dbCommand.Parameters.AddWithValue("@Value2", textBox1.Text);
            dbCommand.Parameters.AddWithValue("@Value3", textBox3.Text);
            dbCommand.Parameters.AddWithValue("@Value4", textBox2.Text);
            dbCommand.Parameters.AddWithValue("@Value5", textBox4.Text);
            dbCommand.Parameters.AddWithValue("@Value6", textBox5.Text);
 
            MessageBox.Show("Данные обновлены");
Добавлено через 35 минут
Может я не в правильном месте обьявил параметры?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2024, 16:27
Ответы с готовыми решениями:

Ошибка синтаксиса в конструкции Update
Здравствуйте. Возникла проблема с БД MS Access при использовании оператора UPDATE на C#. Нужно...

Ошибка синтаксиса в инструкции UPDATE
Ребята, здравствуйте, пытаюсь в приложении Windows Forms выводить данные из таблицы Access и...

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

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

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

6
Администратор
Эксперт .NET
17478 / 13710 / 5287
Регистрация: 17.03.2014
Сообщений: 28,148
Записей в блоге: 1
20.04.2024, 16:53 2
vlad131120, во-первых, вы выполняете запрос до того как добавляете параметры.

Во-вторых, насколько я знаю параметры в Access позиционные, а не именованные. Это означает что параметры нужно добавлять коллекцию в тоже порядке в котором они идут в запросе. Попробуйте поставить добавление параметра @Value1 последним.

И, третье. У вас UPDATE запрос, но вы зачем-то вызываете ExecuteReader(). А надо ExecuteNonQuery(). Это принципиально не поменяет поведение кода, но неверный выбор показывает что вы плохо понимаете что делаете.
0
0 / 0 / 0
Регистрация: 30.03.2024
Сообщений: 122
20.04.2024, 17:27  [ТС] 3
не получается, та же ошибка .
даже так.
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
int index = dataGridView1.SelectedRows[0].Index;
            string id = dataGridView1.Rows[index].Cells[0].Value.ToString();
 
 
            if (id!= null && textBox1.Text != null && textBox2.Text != null && textBox3.Text != null && textBox4.Text != null && textBox5.Text != null)
             {
                label8.Text = "значения заполнены";
            }
 
            MessageBox.Show("Данные обновлены");
            string query = "UPDATE clients_info SET name1 = @Value2, female1 = @Value3, fefemale1 = @Value4, date = @Value5, number2 = @Value6 where id = @Value1";
 
            con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Database11.accdb");
            cmd = new OleDbCommand();
            con.Open();
            cmd.Connection = con;
          
            OleDbCommand dbCommand = new OleDbCommand(query, con);
            
            dbCommand.Parameters.AddWithValue("@Value2", textBox1.Text);
            dbCommand.Parameters.AddWithValue("@Value3", textBox3.Text);
            dbCommand.Parameters.AddWithValue("@Value4", textBox2.Text);
            dbCommand.Parameters.AddWithValue("@Value5", textBox4.Text);
            dbCommand.Parameters.AddWithValue("@Value6", textBox5.Text);
            dbCommand.Parameters.AddWithValue("@Value1", id);
 
            OleDbDataReader dbReader = dbCommand.ExecuteReader();
 
            MessageBox.Show("Данные обновлены");
Добавлено через 3 минуты
OwenGlendower, я же правильно составил запрос?
0
Администратор
Эксперт .NET
17478 / 13710 / 5287
Регистрация: 17.03.2014
Сообщений: 28,148
Записей в блоге: 1
20.04.2024, 17:28 4
Лучший ответ Сообщение было отмечено vlad131120 как решение

Решение

vlad131120, а так?
C#
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        const string query = "UPDATE clients_info SET name1 = ?, female1 = ?, fefemale1 = ?, date = ?, number2 = ? where id = ?";
 
        con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Database11.accdb");
        con.Open();
 
        OleDbCommand dbCommand = new OleDbCommand(query, con);
 
        dbCommand.Parameters.AddWithValue("@Value2", textBox1.Text);
        dbCommand.Parameters.AddWithValue("@Value3", textBox3.Text);
        dbCommand.Parameters.AddWithValue("@Value4", textBox2.Text);
        dbCommand.Parameters.AddWithValue("@Value5", textBox4.Text);
        dbCommand.Parameters.AddWithValue("@Value6", textBox5.Text);
        dbCommand.Parameters.AddWithValue("@Value1", id);
 
        dbCommand.ExecuteNonQuery();
1
0 / 0 / 0
Регистрация: 30.03.2024
Сообщений: 122
20.04.2024, 18:06  [ТС] 5
OwenGlendower, Я уже отчаился, все равно та же ошибка. А знаки вопроса в запросе это так и должно быть?

Добавлено через 28 минут
OwenGlendower, как вы думаете, стоит ли все переделать под sqlserver? Не будет смешно, что я на access делаю.
переделал запрос и помогло. const string query = "UPDATE clients_info SET [name1] = @Value2, [female1] = @Value3, [fefemale1] = @Value4, [date] = @Value5, [number2] = @Value6 where [id] = @Value1";
0
Эксперт .NET
12286 / 8638 / 1307
Регистрация: 21.01.2016
Сообщений: 32,504
22.04.2024, 04:29 6
Цитата Сообщение от vlad131120 Посмотреть сообщение
как вы думаете, стоит ли все переделать под sqlserver?
Исходя из каких соображений?
1
2643 / 1902 / 356
Регистрация: 14.08.2018
Сообщений: 6,133
Записей в блоге: 4
22.04.2024, 08:30 7
Цитата Сообщение от vlad131120 Посмотреть сообщение
как вы думаете, стоит ли все переделать под sqlserver?
Самое главное отличие MS SQL Server от MS Access в том что первый настоящая взрослая СУБД с сетевыми функциями и многопользовательской работой, даже в минимальной конфигурации Express.
Ну и второе - редакция MS SQL Server Express абсолютно бесплатна, в отличии от MS Access.
Если вам нужна локальная однопользовательская СУБД, которая не требует установки, то смотрите в сторону SQLite.
1
22.04.2024, 08:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2024, 08:30
Помогаю со студенческими работами здесь

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

Ошибка синтаксиса в инструкции UPDATE
private void button1_Click(object sender, EventArgs e) { int code =...

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

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

Ошибка синтаксиса команды UPDATE
Доброго времени суток! Ребят, помогите пожалуйста. Вот код обработки кнопки Сохранить но при...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru