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

Ошибка, в трёх запросах выводит результат первого вне зависимости от условий запросов

23.08.2021, 16:38. Показов 3097. Ответов 4

Студворк — интернет-сервис помощи студентам
В первом запросе выводит результат "13". Остальные два тоже выводят 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
31
32
33
34
35
36
37
38
39
//заполнение блока с айди теста
                    sqlConnection = new SqlConnection(@"Data Source=DESKTOP-Q7TEGKR;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
                    sqlConnection.Open();
 
                    SqlCommand sqlCommand2 = new SqlCommand("USE CollegeTest_DataBase SELECT Test_Id FROM TEST_TABLE WHERE Test_Name=@Test_Name", sqlConnection);
                    sqlCommand2.Parameters.AddWithValue("Test_Name", TestNameSearch_Line.Text);
 
                    object res = sqlCommand2.ExecuteScalar();
                    QuestionCounter1.Text = Convert.ToString(res);
                    RegistrationButton.Opacity = 0;
 
                    sqlCommand2.ExecuteNonQuery();
 
 
                    //заполнение блока с айди вопроса
                    sqlConnection = new SqlConnection(@"Data Source=DESKTOP-Q7TEGKR;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
                    sqlConnection.Open();
 
                    SqlCommand sqlCommand4= new SqlCommand("USE CollegeTest_DataBase SELECT Question_Id FROM QUESTIONS_TABLE WHERE Test_Id=@Test_Id", sqlConnection);
                    sqlCommand4.Parameters.AddWithValue("Test_Id", Convert.ToInt32(QuestionCounter1.Text));
 
                    object res4 = sqlCommand4.ExecuteScalar();
                    QuestionId.Text = Convert.ToString(res);
                    RegistrationButton.Opacity = 0;
 
                    sqlCommand2.ExecuteNonQuery();
 
                    //загрузка текста вопроса
                    sqlConnection = new SqlConnection(@"Data Source=DESKTOP-Q7TEGKR;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
                    sqlConnection.Open();
 
                    SqlCommand sqlCommand7 = new SqlCommand("use CollegeTest_DataBase SELECT QuestionText FROM QUESTIONS_TABLE WHERE Question_Id=@QuestionId", sqlConnection);
                    sqlCommand7.Parameters.AddWithValue("QuestionId", Convert.ToInt32(QuestionId.Text));
 
                    sqlCommand7.ExecuteNonQuery();
 
 
                    object res7 = sqlCommand7.ExecuteScalar();
                    ArticleTextBlock.Text = Convert.ToString(res);
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.08.2021, 16:38
Ответы с готовыми решениями:

PHPExcel выводит кракозябры вне зависимости от кодировки
Я меняла кодировку и в файле генерации и в экспортируемом файле. Пробовала utf-8 и windows-1251. Беда в том, что даже в файле, в котором...

В зависимости от условий в одном столбце считать разность даты из первого столбца
Добрый день нужна помощь, нужно подсчитывать какой период проработали нагреватели - средний их срок службы. Нагреватели двух типов. В...

Ошибка при запуске "Данная ошибка вылетает вне зависимости от способов и компонентов подключения"
Доброго времени суток. Столкнулся с такой вот проблемой на XE версии делфей. Коннектится к базе вроде бы нормально - в таблице записи...

4
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,560
Записей в блоге: 4
23.08.2021, 17:07
Лучший ответ Сообщение было отмечено LiBimo как решение

Решение

LiBimo, а зачем вот это, если в запросах везде SELECT?
C#
1
2
3
4
5
6
7
...
sqlCommand2.ExecuteNonQuery();
...
sqlCommand2.ExecuteNonQuery();
...
sqlCommand7.ExecuteNonQuery();
...
ExecuteNonQuery() используется для INSERT, UPDATE, DELETE и возвращает количество затронутых строк в таблице.

Добавлено через 11 минут
LiBimo, вот почитайте как правильно со всем этим работать
Руководство по ADO.NET и работе с базами данных в .NET
1
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 37
23.08.2021, 17:32  [ТС]
Ошибка состоит в помарке в коде.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
23.08.2021, 18:18
Цитата Сообщение от LiBimo Посмотреть сообщение
Ошибка состоит в помарке в коде.
Ошибка состоит в том, что Вы пренебрегаете или не знаете простых правил.
1. Зачем 100 раз писать в коде одно и то же, имеется в виду строка соединения. А если она изменится ? Нужно будет менять в 100 местах ?
2. Зачем писать в запросе USE, если в соединении, в контексте которого запрос будет выполняться, база указана явно ? Имеем захламление кода мусором.
3. Нет валидации. Если юзер введет вместо цифры букву, Ваше приложение тупо "вылетит".
4. Когда используется ExecuteScalar, то подразумевается, что запрос может вернуть только одну строку-значение либо ничего. Вы уверены, что вернется не более, чем одна строка ? Из текста запросов это никак не вытекает. Ну и опять же вылет, если ничего не вернется (null)
5. Про ExecuteNonQuery уже сказали.
6. Безграмотен весь код в целом. Для заполнения трех текстбксов используется нагромождение кода вместо того, чтобы использовать модель, заполняемую в соответствующем методе класса-репозитория, из которой затем данные тремя строками переносятся в контролы. Просто, ясно и предельно лаконично.
1
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 37
23.08.2021, 22:15  [ТС]
Не получилось удержаться на такой большой и содержательный комментарий.

Я пишу работу для галочки и очень сожалею, что не собираюсь заниматься программированием, ведь каждый ответ на этом форуме даёт какие-либо новые знания, а ваш комментарий мог бы серьёзно улучшить мой уровень кода в целом.

Как человек, который сам изучает большой пласт информации в сфере цифрового искусства для работы, выражаю большую благодарность и уважение за такой обширный ответ. Безумно здорово что есть люди, которые делятся знаниями с начинающими
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2021, 22:15
Помогаю со студенческими работами здесь

Напишите программу, которая запрашивает два числа находит остаток от деления первого на второе и выводит результат
Напишите программу, которая запрашивает два числа находит остаток от деления первого на второе и выводит результат.

Ошибка в коде. Не выводит результат
Ошибка где-то в этом фрагменте функции, она не выдает результата if (ComboBox1->ItemIndex == 1){ f=w; double...

Язык запросов XQuery. Куда выводится результат запросов?
Среда Visual Basic STUDIO’2010 Professional Тестирую Главу 7 Книги Ильдара Хабибуллина "Самоучитель XML" от 2003 г. Имеется...

Не выводит на экран результат, в чем ошибка?
Добрый день всем. Не выводит на экран результат, в чем ошибка? ratio = float(input("Введите коэффициент: ")) bank =...

Типы данных в запросах. Обработка запросов на URL.Middleware - Что подразумевается?
Здравствуйте! Получил список вопросов, по которым будут пытать на собеседовании, но смысл некоторых уловить не могу. Может кто-то...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru