Как проверить, совпадают ли имя пользователя и пароль, введенные пользователем в текстовые поля, в записях в базе данных

Я использую VB.Net с базой данных MySQL, и я хочу проверить, совпадают ли имя пользователя и пароль в значениях базы данных. Пример: Username = Админ11 отличается от Username = admin11, когда пользователь ввел строчные буквы «a», а в базе данных - прописные. «А» - это неправильно. то, что я хочу, это когда пользователь ввел имя пользователя, что это не совсем имя пользователя в значениях базы данных имя пользователя неверно здесь мой код, но он не работает

Dim con = New MySqlConnection

con.ConnectionString = "server=localhost;userid=root;password=alpine;port=3305;database=pos_db;pooling=false;SslMode=none"

con.Open()

Dim qry As String = "SELECT COUNT(*) FROM pos_db.tblusers WHERE Username=@user AND Password=@pass"
Dim cmd As New MySqlCommand(qry, con)
cmd.Parameters.AddWithValue("@user", txtUsername.Text)
cmd.Parameters.AddWithValue("@pass", txtPassword.Text)

Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())

If count <> 0 Then
    Me.Hide()
    FrmSelect.Show()
Else
    MessageBox.Show("Either username or password in incorrect", "System", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
185
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

используйте binary в своем запросе

SELECT COUNT(*) 
FROM pos_db.tblusers 
WHERE 
  BINARY Username = @user
  AND BINARY Password = @pass

Отметьте как ответ и обновите свое сообщение правильным ответом. Добро пожаловать @MarkNartea

parkway 04.12.2018 04:50

@parkway - можно пометить как ответ, если он ответил на вопрос, но не обновлять исходный вопрос. Такие правки будут отменены.

AJD 04.12.2018 04:55

Да, сэр, большое спасибо. как я могу отметить этот пост как ответ, я новичок в StackOverflow

Mark Nartea 04.12.2018 04:57

Вы видели цифру 0 в этой ветке? есть стрелки вверх и вниз. u нажмите / наведите указатель мыши на кнопку со стрелкой вверх

parkway 04.12.2018 06:28

скопируй это. сэр, могу я задать вопрос, почему мы используем двоичный код? по какой причине.

Mark Nartea 04.12.2018 07:16

@MarkNartea BINARY - это встроенное ключевое слово, которое после вашего предложения WHERE заставляет сравнение для точного совпадения с учетом регистра. Обычно, если оно учитывает регистр, я буду использовать это в моем запросе. вам не нужно создавать код vb.net, чтобы проверить, совпадает ли он или нет. то же самое и с php

parkway 04.12.2018 08:36

Спасибо, сэр, за этот ответ, я буду дорожить им. кстати, сэр, у меня снова проблема. Я использую тот же синтаксис, что и выше, при регистрации, чтобы проверить, находятся ли значения, введенные пользователем, в базе данных, значение, которое уже есть в моем pos_db.tblusers Username = "MarkJhosephNartea" и когда я вставьте другое имя пользователя со значением Username = "Markjhosephnartea", это приведет к ошибке выполнения, дублированию записи. как я могу это исправить? спасибо сэр за ответ.

Mark Nartea 04.12.2018 08:57

@MarkNartea, я не понимаю, о чем вы. повторяющаяся запись?

parkway 04.12.2018 09:25
stackoverflow.com/questions/53608581/…
Mark Nartea 04.12.2018 09:29

Большое спасибо сэру @parkway за помощь, это правильный вопрос по моему вопросу. Теперь я узнаю что-то новое в программировании, еще раз большое спасибо, сэр.

con.Open ()

        Dim qry As String = "SELECT COUNT(*) FROM pos_db.tblusers WHERE BINARY Username=@user AND BINARY Password=@pass"
        Dim cmd As New MySqlCommand(qry, con)
        cmd.Parameters.AddWithValue("@user", txtUsername.Text)
        cmd.Parameters.AddWithValue("@pass", txtPassword.Text)

        Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())

        If count <> 0 Then
            Me.Hide()
            FrmSelect.Show()
        Else
            MessageBox.Show("Either username or password in incorrect", "System", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

Примите ответ @parkway, щелкнув галочку (галочку) слева от его ответа.

Mary 04.12.2018 21:18

Спасибо, мэм, за то, что проинформировали меня. :) Я новичок в нашем сообществе, хе-хе.

Mark Nartea 05.12.2018 05:46

Другие вопросы по теме