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

Проблема с запросами

07.02.2023, 10:08. Показов 2356. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите на счет использование аргументов в запросах.
Есть запрос, в нем интерполяция, ее нужно заменить на использование аргументов.
SQL
1
$"select id_user, login_user, password_user, is_admin from register where login_user = '{login}' and password_user = '{password}'";
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2023, 10:08
Ответы с готовыми решениями:

Проблема с запросами
Имеется файл utils.js с кодом module.exports.getSteamStats = function(id){ request.get({ url:...

Проблема с запросами
Здравствуйте, возникла проблема, при отправке запроса на сервер. Вот код функции запроса и сам коллбэк: internal string Request(string...

Проблема с SQL запросами
Есть таблица сообщений, таблица пользователей и таблица связки пользователей (в таблица хранится, кто у кого в друзьях). Таблица...

43
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 11:39
Студворк — интернет-сервис помощи студентам
Miristeri, В БД запрос в моём варианте показывает что надо?
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 11:49  [ТС]
Andrey-MSK, Не показывает нечего(
T-SQL
1
2
3
4
5
6
SELECT
   id_user, login_user, password_user, is_admin
FROM
   register
WHERE
   login_user = @login AND password_user = @password
Добавлено через 2 минуты
Andrey-MSK, вот так показывает
T-SQL
1
2
3
4
SELECT
   id_user, login_user, password_user, is_admin
FROM
   register
Добавлено через 3 минуты
Andrey-MSK, Пустые поля выводит с помощью Вашего запроса

Добавлено через 48 секунд
Andrey-MSK, Вот я сделал по Вашему запросу
T-SQL
1
2
3
4
5
6
SELECT
   id_user, login_user, password_user, is_admin
FROM
   register
WHERE
   login_user = '@login' AND password_user = '@password'
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 11:52
Miristeri, А параметрам в БД SET делали при выполнении запроса? В общем добейтесь работы запроса в СУБД, а потом уже пишите его в C#. Ссылку как это сделать давали выше.

Добавлено через 1 минуту
Цитата Сообщение от Miristeri Посмотреть сообщение
T-SQL
1
login_user = '@login' AND password_user = '@password'
Это что? Я разве так писал?
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 11:56  [ТС]
Andrey-MSK, Так что ли сделать надо?
T-SQL
1
2
3
4
5
6
7
DECLARE @login nvarchar(20), @password_user nvarchar(20)
set @login = 'admin';
set @password_user = 'admin';
PRINT 'admin: ' + @login;
PRINT 'admin: ' + @password_user;
 
select @login, @password_user;
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 12:01
Цитата Сообщение от Miristeri Посмотреть сообщение
T-SQL
1
select @login, @password_user;
Дак SELECT из таблицы делать надо...

Значит так
1. Научитесь писать запросы с параметрами в СУБД - документация по СУБД
2. Научитесь писать эти же запросы с параметрами в C# - Руководство по ADO.NET и работе с базами данных в .NET 6
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 12:06  [ТС]
Andrey-MSK, Я не могу понять чего надо? По Вашему запросу не рубит, по моему показывает, чего дальше делать то?
T-SQL
1
2
select login_user, password_user
from register
вот я смотрю что у меня в таблице, а дальше чего?
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
07.02.2023, 12:07
Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

В ифах очевидная опечатка. Там должно быть command.CommandText += ..., а не просто равно.
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 12:10  [ТС]
kotelok, Исправил
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 12:17
Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

Цитата Сообщение от Miristeri Посмотреть сообщение
вот я смотрю что у меня в таблице, а дальше чего?
Дальше тоже самое только с WHERE где указаны ваши логин и пароль.
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 12:22  [ТС]
Andrey-MSK, Просит объявить скалярную переменную, что делать дальше?
T-SQL
1
2
3
select login_user, password_user, is_admin
from dbo.register
where login_user = @login_user and password_user = @password_user;
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 12:28
Лучший ответ Сообщение было отмечено Miristeri как решение

Решение

Цитата Сообщение от Miristeri Посмотреть сообщение
что делать дальше?
Цитата Сообщение от Miristeri Посмотреть сообщение
DECLARE @login nvarchar(20), @password_user nvarchar(20)
set @login = 'admin';
set @password_user = 'admin';
?????
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 13:50  [ТС]
Andrey-MSK, Теперь работает, показывает админ, админ, 1. Что после этого делать?
T-SQL
1
2
3
4
5
6
7
8
DECLARE @login_user nvarchar(20), @password_user nvarchar(20)
set @login_user = 'admin';
set @password_user = 'admin';
 
 
select login_user, password_user, is_admin
from dbo.register
where login_user = @login_user and password_user = @password_user;
Добавлено через 6 минут
Andrey-MSK, Я поправил в коде, но все равно выдает что такого пользователя нет

Добавлено через 14 минут
Usaga, Помогите, мне помогли составить запрос, я проверил его на работоспособность, все сработало, подставил название полей в код, все равно выдает, что пользователь не найден

Добавлено через 58 минут
Andrey-MSK, Я сделал, спасибо за помощь
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 13:58
Цитата Сообщение от Miristeri Посмотреть сообщение
Я сделал, спасибо за помощь
Ну показывайте что там у вас получилось.
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 14:14  [ТС]
Andrey-MSK, Только можно зайти за 1 пользователя. А вот захожу за второго уже пишет что такого нет.
C#
1
2
3
4
5
6
7
8
using (SqlCommand command = new SqlCommand($"select login_user, password_user, is_admin from register where '{loginUser}' = @login_user AND '{passwordUser}' = @password_user", dataBase.getConnection()))
            {
                command.Parameters.AddWithValue("@login_user", loginUser);
                command.Parameters.AddWithValue("@password_user", passwordUser);
                
                adapter.SelectCommand = command;
                adapter.Fill(table);
            }
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 14:26
Цитата Сообщение от Miristeri Посмотреть сообщение
T-SQL
1
where '{loginUser}' = @login_user
А это что такое?
Должно быть
T-SQL
1
where login_user = @login_user AND password_user = @password_user
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 14:29  [ТС]
Andrey-MSK, Исправил, странно только что работало и вдруг перестало работать
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 14:36
Miristeri, Полный код метода покажите.
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 14:38  [ТС]
Andrey-MSK,
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
private void EnterButton_Click(object sender, EventArgs e)
        {
            var loginUser = Login.Text; 
            var passwordUser = Password.Text;
 
            SqlDataAdapter adapter = new SqlDataAdapter();
            DataTable table = new DataTable();
 
            using (SqlCommand command = new SqlCommand($"select login_user, password_user, is_admin " +
                $"from register " +
                $"where loginUser = @login_user AND passwordUser = @password_user", dataBase.getConnection()))
            {
                command.Parameters.AddWithValue("@login_user", loginUser);
                command.Parameters.AddWithValue("@password_user", passwordUser);
                
                adapter.SelectCommand = command;
                adapter.Fill(table);
            }
 
            if (table.Rows.Count == 1) 
            {
                var user = new checkUser(table.Rows[0].ItemArray[1].ToString(), Convert.ToBoolean(table.Rows[0].ItemArray[2]));
 
                MessageBox.Show("Вы успешно вошли!", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information);
                MenuForm menuform = new MenuForm(user);
                this.Hide();
                menuform.ShowDialog();
            }
            else
                MessageBox.Show("Такого аккаунта не существует", "Аккаунта не существует", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,762
Записей в блоге: 4
07.02.2023, 14:48
Miristeri, А если так
C#
1
2
3
4
5
6
7
...
 
string sqlText = "select login_user, password_user, is_admin " +
    "from register where loginUser = @login_user AND passwordUser = @password_user";
 
using (SqlCommand command = new SqlCommand(sqlText, dataBase.getConnection()))
{ ... }
И что такое new checkUser(). Проверьте в Debug, заходит туда выполнение или нет, поставьте точку останова на эту строку, заодно глянете значения переменных там.
1
1 / 1 / 0
Регистрация: 05.10.2021
Сообщений: 268
07.02.2023, 15:13  [ТС]
Andrey-MSK, Огромное Вам спасибо за помощь, все отлично работает, вот код результата
C#
1
2
3
4
5
6
7
8
9
using (SqlCommand command = new SqlCommand($"select login_user, password_user, is_admin " +
            "from register where login_user = @login_user AND password_user = @password_user", dataBase.getConnection()))
           {
                command.Parameters.AddWithValue("@login_user", loginUser);
                command.Parameters.AddWithValue("@password_user", passwordUser);
                
                adapter.SelectCommand = command;
                adapter.Fill(table);
           }
Добавлено через 19 минут
Andrey-MSK, Можете подсказать на счет кнопки удалить, там так же как и с входом? Или по другому писать нужно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2023, 15:13

VB+Access: проблема с запросами
Суть вопроса: БД на Access, 2 таблицы - первая содержит данные о предпринимателях (9 полей), вторая - данные об их торговых точках(10...

Проблема со сложными запросами
Серьёзная проблема. Работаю с Access XP. Не большая база данных, но со сложной структурой. В конце концов все данные собираются в одном...

Проблема с SQL запросами.
Ребят, я совсем отчаялся, доделываю курсовую работу, приложение в принципе готово. НО! Никак не могу составить запросы, я слаб в этом....

Проблема с SQL запросами.
Ребят, я совсем отчаялся, доделываю курсовую работу, приложение на делфи в принципе готово. НО! Никак не могу составить запросы, я слаб в...

Проблема с SQL запросами
Приветствую, киберфорумчане. В кратце опишу мою проблему. Я делаю тестовый проект для Яндекс.Лицея. Это программа на PyQT 5 и на sqlite3....


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru