С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40

Ошибка при выполнении запроса

12.10.2018, 13:52. Показов 1741. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, подскажите пожалуйста вылазит ошибка


при нажатии на кнопку с данными

Кликните здесь для просмотра всего текста
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
 private void button2_Click(object sender, EventArgs e)
        {
            string photo = Path.GetDirectoryName(Text);
            string lastname = textBox1.Text;
            string name = textBox2.Text;
            string patronymic = textBox3.Text;
            string adress = textBox4.Text;
            var mobile = textBox5.Text;
            string email = textBox6.Text;
            string position = textBox7.Text;
            var age = txtAge.Text;
            var birthday = dateTimePicker1.Text;
            string status = comboBox1.Text;
            // объект для установления соединения с БД
            SqlConnection connection = new SqlConnection(connectionString);
            // открываем соединение
            connection.Open();
            // запрос вставки данных
            string query = "UPDATE condidat SET (lastname, name, patronymic, adress, mobile, email, position, photo, age, birthday, status) VALUES " +
            "('" + lastname + "', '" + name + "', '" + patronymic + "','" + adress + "', '" + mobile + "', '" + email + "', '" + position + "', '" + photo + "', '" + txtAge.Text + "', '" + birthday + "', '" + status + "')";
            // объект для выполнения SQL-запроса
            SqlCommand command = new SqlCommand(query, connection);
            // выполняем запрос
            command.ExecuteNonQuery();
            // закрываем подключение к БД
            connection.Close();
            {
                MessageBox.Show("Данные успешно записаны");
            }
        }


с ms sql вообще не знаком, запрос взят из работающей программы но на mysql и переделанный под свои нужды, но не получается
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2018, 13:52
Ответы с готовыми решениями:

Анимация при выполнении запроса
Здравствуйте друзья. Выполняю запрос к базе на выборку, хочу в течении запроса выводить анимацию типа "Работаю..." где то...

Ошибка при запуске и выполнении программы
В студии не вылетает, а так вылетает. Ссылка на проект ниже. https://yadi.sk/d/ALxs3_LpoVe4K

Ошибка 503 при получении запроса
Здравствуйте, начинаю только изучать C#. Задача, отправить данные с двух форм на сервер и принять ответ. Проблема при принятии запроса,...

13
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
12.10.2018, 14:05
а где в вашем коде
Цитата Сообщение от localhosts Посмотреть сообщение
connectionString
он должен быть таким:
C#
1
var connectionString ="Data Source=Имя_Сервера; Initial Catalog=ИмяБД; User ID=ИмяПользователя; Password=Пароль; Integrated Security = False;"
Добавлено через 1 минуту
ну и конечно, запихивать метод работающий с данными в обработчик кнопки, некрасиво, да и вдальнейшем у вас с ним будут проблемы!
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
12.10.2018, 14:24  [ТС]
Соединение с базой проходит отлично, все работает, дело в самом запросе

а за замечание спасибо
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
12.10.2018, 14:35
localhosts, а using-и все подключены?

Добавлено через 57 секунд
возможно вам нужно дописать
C#
1
using System.Data.SqlClient;
Добавлено через 1 минуту
Цитата Сообщение от localhosts Посмотреть сообщение
Соединение с базой проходит отлично, все работает
судя по картинке, это кардинально не так.
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
12.10.2018, 14:37  [ТС]
запрос на добавление - удаление выполняется и все что работает с базой все выполняется, кроме обновления, пишет запрос не верный
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
12.10.2018, 14:46
усладите мой взор, поменяйте
Цитата Сообщение от localhosts Посмотреть сообщение
C#
1
string query = "UPDATE condidat SET (lastname, name, patronymic, adress, mobile, email, position, photo, age, birthday, status) VALUES " + "('" + lastname + "', '" + name + "', '" + patronymic + "','" + adress + "', '" + mobile + "', '" + email + "', '" + position + "', '" + photo + "', '" + txtAge.Text + "', '" + birthday + "', '" + status + "')";
на
C#
1
2
3
4
string query = "UPDATE condidat SET (lastname, name, patronymic, adress, mobile, email, position, photo, age, birthday, status) VALUES " + Envoirment.NewLine;
query += string.Format("('{0}', '{1}', '{2}','{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}')",
lastname ,name,patronymic,adress,mobile,email,position,photo,age,birthday,status
);
Добавлено через 1 минуту
localhosts, а можно текст ошибки? и стактрейс, только не на картинке, а здесь на форуме выложить в виде текста?

Добавлено через 2 минуты
емае, после того как посмотрел в своей интерпретации увидел кажется увидел ошибку, Вы обновляете данные???
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
12.10.2018, 14:48  [ТС]
да, обнавляю
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
12.10.2018, 14:51
запрос должен быть формата:
T-SQL
1
2
3
4
UPDATE Таблица -- соответственно имя таблицы
lastname = значение -- всегда должна быть пара Имя столбца знак равно (=) и значение которое следует обновить
-- куча ваших столбцов
WHERE        (lastname='Иванов') -- а здесь условие по которомы вы отбираете запись, которую следует обновить лучше всего если это идентификатор
Так что у вас запрос не верный!

Добавлено через 48 секунд
localhosts, пересмотрите ваш запрос с указанными замечаниями!
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
12.10.2018, 14:52  [ТС]
Спасибо, сейчас попробую
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
12.10.2018, 14:56
localhosts, после пары столбец значение, если пар более 1, всегда ставится запятая, а если условий отбора несколько, то между скобками ставится "AND"
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,850
Записей в блоге: 1
12.10.2018, 15:04
Лучший ответ Сообщение было отмечено localhosts как решение

Решение

localhosts, у тебя неверный запрос. Если это вставка данных, то нужно использовать INSERT
C#
1
2
3
// запрос вставки данных
string query = "INSERT INTO condidat (lastname, name, patronymic, adress, mobile, email, position, photo, age, birthday, status) VALUES " +
"('" + lastname + "', '" + name + "', '" + patronymic + "','" + adress + "', '" + mobile + "', '" + email + "', '" + position + "', '" + photo + "', '" + txtAge.Text + "', '" + birthday + "', '" + status + "')";
Если обновление, то UPDATE в таком виде
C#
1
2
3
4
string query = string.Format(
    "UPDATE condidat SET lastname='{0}', name='{1}', patronymic='{2}', adress='{3}', mobile='{4}', email='{5}', position='{6}', photo='{7}', age='{8}', birthday='{9}', status='{10}'" +
        " WHERE ???",
    lastname, name, patronymic, adress, mobile, email, position, photo, txtAge.Text, birthday, status);
В WHERE части нужно указать условие для выбора конкретной строки которую необходимо обновить. Без этого будут обновлены все строки. Врядли это тебе требуется.
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
12.10.2018, 15:25  [ТС]
а как указать именно ту строку которая открыта в данный момент ?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18250 / 14174 / 5366
Регистрация: 17.03.2014
Сообщений: 28,850
Записей в блоге: 1
12.10.2018, 15:36
localhosts, это зависит от того где и как она "открыта". У тебя похоже какой-то диалог редактирования записи? В таблице по идее есть первичный ключ - запомни его значение когда данные читаются из БД и подставляй его в WHERE блок. Условный пример
C#
1
string sql = "UPDATE ... WHERE Id=" + condidatId;
0
0 / 0 / 3
Регистрация: 23.06.2018
Сообщений: 40
13.10.2018, 03:48  [ТС]
Спасибо всем, но я сделал по другому, убрал функцию из-за которых в итоге пришлось делать обновление базы, и смог обойтись без него, еще раз всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2018, 03:48
Помогаю со студенческими работами здесь

Web API 2.Ошибка при использовании OData запроса с contains
На запрос api/products?$filter=contains(ProductCode,'GDN'),получаю ошибку: "The query specified in the URI is not valid. An unknown...

Плохое качество при выполнении
Добрый день! Не знал куда залить: для новичков или WF, так что пока пусть побудет здесь... Делаю программу маленького размера (размер...

Проблема при выполнении приложения вне VS
Привет всем! Есть клиент WCF. Обычная прога на WinForms. Для доступа к сервису используется WS-security. Проверяется серверный...

Зависание формы при выполнении цикла
Есть бот который выполняет get запросы каждые 30 секунд. Запрос находится в исключении, а исключение в цикле. Так вот, когда выполняется...

Лаги при выполнении метода в потоке
Из библиотеки VkNet поставил в поток юзать метод Users.Search и добавлять каждую строку в metroTextBox, и после ~10к результатов начинаются...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru