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

Ошибка в запросе к БД

21.01.2014, 15:24. Показов 980. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята помогите пожалуйста, уже завтра сдача курсача. Уже второй день мучаюсь, пытаюсь исправить ошибку INSERT INTO при попытке изменить данные в 2-х таблицах, т. е. в одной таблице данные изменяются а в другой нет, ошибку выводит.
Хочу изменить данные в таблицах Адрес и Квартиросъемщик. Название формы в моей программе: RedakAdres.cs


Вот собственно код, но в самой проге думаю лучше будет понятно в чем ошибка(сразу говорю там много мусора)
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
            using (cn = new OleDbConnection(adres))
            {
                try
                {
                    OleDbCommand Update1 = new OleDbCommand();
                    Update1.Connection = cn;
                    cn.Open();
                    Update1.CommandText = "Update Квартиросъемщик set ФИО = ?, Количество_проживающих = ?, Площадь = ?, Телефон = ? WHERE Номер_абонента =" + id;
 
                    Update1.Parameters.Add("P_ФИО", "ФИО").Value = textBox5.Text;
                    Update1.Parameters.Add("P_Количество_проживающих", "Количество_проживающих").Value = Convert.ToInt32(textBox12.Text);
                    Update1.Parameters.Add("P_Площадь", "Площадь").Value = Convert.ToInt32(textBox9.Text);
                    Update1.Parameters.Add("P_Телефон", "Телефон").Value = Convert.ToInt32(textBox10.Text);
                    Update1.ExecuteNonQuery();
                    cn.Close();
                    MessageBox.Show("Запись успешно отредактированна");
 
                    //this.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
 
            }
 
 
           using (cn = new OleDbConnection(adres))
            {
                try
                {
                   cn.Open();
                   string strOleDB = "UPDATE Адрес SET Корпус =" + Convert.ToInt32(textBox6.Text) + ", Квартира=" + Convert.ToInt32(textBox7.Text) + ", Дом =" + Convert.ToInt32(textBox8.Text) +
   ", Кол-во_комнат=" + Convert.ToInt32(textBox11.Text) + ", Код_улицы=" + Convert.ToInt32(comboBox1.SelectedIndex + 1) + " WHERE Номер_абонента = " + id;
                   
                    Update2.ExecuteNonQuery();
                    cn.Close();
                    MessageBox.Show("Запись успешно отредактированна");
                    //this.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
Вложения
Тип файла: rar Новая папка.rar (3.01 Мб, 6 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2014, 15:24
Ответы с готовыми решениями:

Ошибка в запросе на Редактирование: ошибка синтаксиса (пропущен оператор)
string strSQL1 = "UPDATE SET .='" + dataGridView1.CurrentRow.Cells.Value.ToString() + "',.='" +...

Ошибка в запросе на вставку: ошибка синтаксиса
private void button2_Click(object sender, EventArgs e) { goods = null; ...

Ошибка в запросе
Есть запрос, который ищет в заданной папке слово и заменяет его на нужное: Запрос = Новый...

ошибка в запросе
создала запрос, который ищет по полю содержание, при нахождении слова, содержание должно выводиться...

10
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
21.01.2014, 19:15 2
Цитата Сообщение от dimok0007 Посмотреть сообщение
ошибку выводит.
Какую?

Не по теме:

Цитата Сообщение от dimok0007 Посмотреть сообщение
уже завтра сдача курсача.
на каком курсе сейчас такие курсовые пишут?

0
3 / 3 / 1
Регистрация: 22.03.2013
Сообщений: 63
21.01.2014, 19:21  [ТС] 3
Цитата Сообщение от freeba Посмотреть сообщение
Какую?

Не по теме:


на каком курсе сейчас такие курсовые пишут?

Ошибка синтаксиса в инструкции UPDATE. - вот что пишет. Там в проге нажимаешь на кнопку Клиенты, затем Редактировать и можете посмотреть в каком именно месте возникает ошибка. Данные для входа в прогу: login - admin; password - 12ivt
на 2 курсе, согласен что там у меня прога на самом низком уровне, но все же.
0
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
21.01.2014, 19:51 4
Цитата Сообщение от dimok0007 Посмотреть сообщение
Ошибка синтаксиса в инструкции UPDATE.
Собственно вот ответ. Перепишите второй запрос по образу и подобию первого.
0
паха76
21.01.2014, 19:52
  #5

Не по теме:



ВУЗ, ВУЗ в студию. Это в где путают UPDATE и INSERT (код качнуть не решился - мало ли), и
в запросах с параметрами применяют "технике": "как сказали в коридоре, так и делаем"?

0
3 / 3 / 1
Регистрация: 22.03.2013
Сообщений: 63
21.01.2014, 20:12  [ТС] 6
Цитата Сообщение от freeba Посмотреть сообщение
Собственно вот ответ. Перепишите второй запрос по образу и подобию первого.
Так я изначально по подобию первого сделал, и не смог найти ошибку, и подумал через другой метод реализовать. Можете все таки-скачать прогу и посмотреть что не так. Вот собственно переделанный код:


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
using (cn = new OleDbConnection(adres))
            {
                try
                {
                    OleDbCommand Update2 = new OleDbCommand();
                    Update2.Connection = cn;
                    cn.Open();
                    Update2.CommandText = "Update Адрес set Корпус = ?, Квартира = ?, Дом = ?, Кол-во_комнат = ?, Код_улицы = ? WHERE Номер_абонента =" + id;
                    Update2.Parameters.Add("P_Корпус", "Корпус").Value = Convert.ToInt32(textBox6.Text);
                    Update2.Parameters.Add("P_Квартира", "Квартира").Value = Convert.ToInt32(textBox7.Text);
                    Update2.Parameters.Add("P_Дом", "Дом").Value = Convert.ToInt32(textBox8.Text);
                    Update2.Parameters.Add("P_Кол-во_комнат", "Кол-во_комнат").Value = Convert.ToInt32(textBox11.Text);
                    Update2.Parameters.Add("P_Код_улицы", "Код_улицы").Value = Convert.ToInt32(comboBox1.SelectedIndex + 1);
 
                    Update2.ExecuteNonQuery();
                    cn.Close();
                    MessageBox.Show("Запись успешно отредактированна");
                    this.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message);
                }
               
            }
Добавлено через 3 минуты
Цитата Сообщение от паха76 Посмотреть сообщение

Не по теме:



ВУЗ, ВУЗ в студию. Это в где путают UPDATE и INSERT (код качнуть не решился - мало ли), и
в запросах с параметрами применяют "технике": "как сказали в коридоре, так и делаем"?

Да у меня изначально и с Insert-ом были проблемы, пока не нашел ошибку, и машинально написал вместо Update Insert.
ВУЗ - ИТИ
0
паха76
21.01.2014, 20:36
  #7

Не по теме:


Аццкий адЪ
зачем cn.Close(), если все обернуто в using?
кто-такой this и зачем ему .Close()
ИТИ - это кто? Какая специальность?

0
3 / 3 / 1
Регистрация: 22.03.2013
Сообщений: 63
21.01.2014, 23:26  [ТС] 8
Цитата Сообщение от паха76 Посмотреть сообщение

Не по теме:


Аццкий адЪ
зачем cn.Close(), если все обернуто в using?
кто-такой this и зачем ему .Close()
ИТИ - это кто? Какая специальность?

cn.Close для того чтобы закрыть подключение к БД(я так понимаю что это не надо?)
this.Close(); - имеется в виду после изменения данных, чтоб окно закрылось автоматически
ИТИ - Инженерно Технический Институт. Специальность: ИВТ - Информатика и вычислительная техника

Добавлено через 2 часа 34 минуты
Цитата Сообщение от freeba Посмотреть сообщение
Собственно вот ответ. Перепишите второй запрос по образу и подобию первого.
Кто-нибудь может мне помочь и сказать в чем именно ошибка? Идеи есть?
0
3 / 3 / 1
Регистрация: 22.03.2013
Сообщений: 63
21.01.2014, 23:50  [ТС] 9
Кто может подсказать в ошибка?
0
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
22.01.2014, 00:24 10
Цитата Сообщение от dimok0007 Посмотреть сообщение
Кто может подсказать в ошибка?
VS вам все подсказала. Приведите запрос к виду:
SQL
1
2
UPDATE Адрес SET Адрес.Корпус = 12, Адрес.Квартира = 13, Адрес.[Кол-во_комнат] = 14, Адрес.Код_улицы = 15, Адрес.Дом = 16
WHERE (((Адрес.Номер_абонента)=5));
И все заработает. Обратите внимание на квадратные скобки: Адрес.[Кол-во_комнат]
2
3 / 3 / 1
Регистрация: 22.03.2013
Сообщений: 63
22.01.2014, 17:34  [ТС] 11
Цитата Сообщение от freeba Посмотреть сообщение
VS вам все подсказала. Приведите запрос к виду:
SQL
1
2
UPDATE Адрес SET Адрес.Корпус = 12, Адрес.Квартира = 13, Адрес.[Кол-во_комнат] = 14, Адрес.Код_улицы = 15, Адрес.Дом = 16
WHERE (((Адрес.Номер_абонента)=5));
И все заработает. Обратите внимание на квадратные скобки: Адрес.[Кол-во_комнат]

Заработало. Спасибище вам огромное, выручили очень сильно!
0
22.01.2014, 17:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2014, 17:34
Помогаю со студенческими работами здесь

ошибка в запросе
есть часть запроса: where c.Path LIKE '%' + CAST((c1.ID IN (select ID from...

Ошибка в запросе
Ребят, у меня запрос в Access выполняется успешно. Когда я делаю запрос к базе из программы через...

Ошибка в запросе к БД
Не понимаю в чем проблема 15й строки:-|

Ошибка в запросе
Добрый вечер! Есть запрос: INSERT INTO uch_plan...


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

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