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

Не могу разобраться с авторизацией из БД

01.01.2020, 20:48. Показов 2302. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица с FIO и ПАРОЛЯМИ.

Я подключил к Windows Form базу данных.

Форма авторизации выглядит следующим образом:


В комбобоксе я выбираю условный логин, в БД к каждому пользователю есть пароль.
Мне нужно проверить соответствует ли введенный пароль тому, который занесен у данного пользователя в БД.

Вот таблица из БД:


Вот, как я привязал данные из таблицы к комбобоксу:


т.е. если я выбираю в combobox Черных Иван Васильевич и введу пароль, который у данного пользователя занесен в БД меня должно пускать в другую форму, но как проверить, что ВВЕДЕННЫЙ пароль соответствует тому, что лежит в БД?

C#
1
2
3
4
   if (comboBox1.SelectedIndex == 0)
            {
 
            }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2020, 20:48
Ответы с готовыми решениями:

Не могу разобраться с авторизацией
Здравствуйте, уважаемые веб-программисты. Уже на протяжении суток не могу разобраться с авторизацией пользователей. Сделал login form под...

не могу разобраться с авторизацией
Всем, привет! помогите пожалуйста разобраться, программирование на php только осваиваю . Вот в чем загвоздка, попадая на главную страницу...

Вручайте не могу разобраться с авторизацией
Ребят нужна помощь..... Не могу найти в интернете не чего подобного....( У меня есть сайт например lolka.ru/kabinet При входе на...

20
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
01.01.2020, 20:50  [ТС]
Сама БД к проекту подлючена:
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
01.01.2020, 23:17  [ТС]
C#
1
2
3
4
5
6
7
8
9
string filt = "(AFIO = '" + comboBox1.SelectedIndex + "' and APAROL = '" + textBox1.Text + "')";
                авторизацияBindingSource.Filter = filt;
                if (textBox1.Text == filt)
                {
                    this.Hide();
 
                    Form2 f2 = new Form2();
                    f2.Show();
                }
Сделал фильтрацию, она работает.
Программа видит 3 строки в БД, НО
мне не понятно, какое условие записать тут:
C#
1
2
3
4
5
6
7
  if (textBox1.Text == filt)
                {
                    this.Hide();
 
                    Form2 f2 = new Form2();
                    f2.Show();
                }
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:18
Можно создать запрос к БД. который будет искать пользователя с заданными параметрами. Если запрос вернет одну строку то входим, иначе сообщаем об ошибке.
Также можно использовать автоматически созданный Adapter. И с помощью LINQ проверить на наличие пользователя с заданными параметрами.
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:21  [ТС]
А что мы укажем в качестве параметра?

Это ведь та же самая фильтрация, разве нет?
Он же сейчас мне выдает 1 строку из 3

Но если я выберу к примеру "Наумов Евгений Андреевич", то он опять выдаст 1 строку.

Я пробовал и при таком условии он на пользователе 1 принимал все 3 пароля.
Может я что-то не так сделал конечно, но
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:26  [ТС]


Выбираю 1 пользователя, ввожу его пароль - 111.



Он фильтрует таблицу в БД с 3 до 1 строки, как раз до той, которая нужна, но дальше ничего не происходит, т.к. я не понял, какое по итогу поставить условие, чтобы все было адекватно и правильно ( ну или хотя бы правильно )
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:32  [ТС]
Чтобы было более понятно.

Вот код, который у меня есть сейчас

C#
1
2
3
4
5
6
7
8
9
10
11
  private void button1_Click(object sender, EventArgs e)
        {
            string filt = "(AFIO = '" + comboBox1.SelectedIndex + "' and APAROL = '" + textBox1.Text + "')";
            авторизацияBindingSource.Filter = filt; // со скриншота выше, здесь он видит 1 строку из 3
            if () // не понятно, какое здесь должно быть условие
            {
                this.Hide();
                
                Form2 f2 = new Form2();
                f2.Show();
            }
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:35
C#
1
2
3
4
5
6
7
8
9
string filt = "(AFIO = '" + comboBox1.SelectedIndex + "' and APAROL = '" + textBox1.Text + "')";
                авторизацияBindingSource.Filter = filt;
                if (textBox1.Text == filt)
                {
                    this.Hide();
 
                    Form2 f2 = new Form2();
                    f2.Show();
                }
Возможно здесь ошибка, т. к. в качестве фамилии пользователя вы используете индекс выбранного элемента, а нужно скорее всего использовать текст из combox`a
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:39  [ТС]
Цитата Сообщение от BlueViolet Посмотреть сообщение
C#Выделить код
Возможно здесь ошибка, т. к. в качестве фамилии пользователя вы используете индекс выбранного элемента, а нужно скорее всего использовать текст из combox`a
Попробовал исправить на text

C#
1
string filt = "(AFIO = '" + comboBox1.text + "' and APAROL = '" + textBox1.Text + "')";
Вот так, остальное оставил, как вы предложили, но при нажатии на кнопку ничего не происходит.

Если оставить index, как было -> при нажатии на кнопку combobox очищается, пароль остается в textbox и ничего дальше не происходит
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:41
C#
1
2
3
4
5
6
7
8
9
10
11
private void button1_Click(object sender, EventArgs e)
        {
            string filt = "(AFIO = '" + comboBox1.Text + "' and APAROL = '" + textBox1.Text + "')";
            авторизацияBindingSource.Filter = filt; // со скриншота выше, здесь он видит 1 строку из 3
            if (авторизацияBindingSource.Count == 1) // если фильтр оставил одного пользователя, значит введенные данные верны
            {
                this.Hide();
                
                Form2 f2 = new Form2();
                f2.Show();
            }
1
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:43  [ТС]
Попробовал так, на скриншоте покажу ,что происходит после нажатия на кнопку "вход"



И как бы не понятно, что ему не нравится

Он просто чистит combobox и все
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:46
Если возможно, не могли бы вы скинуть файл проекта. Я тогда бы смог детальней посмотреть что не так
1
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:47  [ТС]
Извиняюсь, я затупил

не исправил с combobox.SelectedIndex на combobox.text

Но проявилась другая проблема, если выбираю 1 пользователя, а пароль ввожу от 2, то combobox просто чистится и после этого не дает выбрать новое значение ( комбобокс пустой становится ).
Мне бы хотелось, чтобы он оставлял выбранное значение.
Не знаете в чем проблема?
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:51  [ТС]



0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:52
авторизацияBindingSource привязана к combox?
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:53  [ТС]
Цитата Сообщение от BlueViolet Посмотреть сообщение
авторизацияBindingSource привязана к combobox?
Да, привязана
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 00:56
Скорее всего ошибка в том что, при применении фильтра к авторизацияBindingSource. Combobox не может правильно отобразить данные. Попробуйте удалить этот фильтр.
0
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 00:59  [ТС]
Цитата Сообщение от BlueViolet Посмотреть сообщение
Скорее всего ошибка в том что, при применении фильтра к авторизацияBindingSource. Combobox не может правильно отобразить данные. Попробуйте удалить этот фильтр.
Тогда он не выполняет условие.
Т.к. без фильтрации программа учитывает все строки, т.е 3
0
23 / 14 / 9
Регистрация: 08.05.2019
Сообщений: 17
02.01.2020, 01:03
Лучший ответ Сообщение было отмечено ookullme как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void button1_Click(object sender, EventArgs e)
        {
            string filt = "(AFIO = '" + comboBox1.Text + "' and APAROL = '" + textBox1.Text + "')";
            авторизацияBindingSource.Filter = filt; // со скриншота выше, здесь он видит 1 строку из 3
            if (авторизацияBindingSource.Count == 1) // если фильтр оставил одного пользователя, значит введенные данные верны
            {
                 авторизацияBindingSource.RemoveFilter(); // Удаляем фильтр чтобы отображались все пользователи
                this.Hide();
                
                Form2 f2 = new Form2();
                f2.Show();
            }
            авторизацияBindingSource.RemoveFilter(); // Удаляем фильтр чтобы отображались все пользователи
1
0 / 0 / 0
Регистрация: 04.01.2019
Сообщений: 59
02.01.2020, 01:06  [ТС]
Аа, вы про это удаление, не то подумал

Большое спасибо, один бы весь завтрашний день разбирался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.01.2020, 01:06
Помогаю со студенческими работами здесь

Не могу разобраться с авторизацией для IP камеры по ONVIF
Всем привет. Пишу небольшое клиент приложение, которое будет опрашивать IP камеру, через протокол ONVIF, и столкнулся с ошибкой. ...

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива и сумму элементов массива,...

Не могу разобраться разобраться с кодом меню
Добрый день. Я понимаю, что тут все, наверное, элементарно. Но я только начала изучение js и пока для меня все страшно и сложно. Проблема...

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax, 3 int 10h ; устанавливаем...

Не могу найти ошибку!! не могу не как разобраться! надо до завтра.
условие: Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол (true - мужской, false - женский),...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru