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

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

12.10.2018, 13:52. Показов 1720. Ответов 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
18245 / 14169 / 5366
Регистрация: 17.03.2014
Сообщений: 28,848
Записей в блоге: 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
18245 / 14169 / 5366
Регистрация: 17.03.2014
Сообщений: 28,848
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru