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

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

07.02.2023, 10:08. Показов 2296. Ответов 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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,749
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru