Как войти в систему как менеджер или сотрудник, проверив столбец роли в базе данных?

#mysql #vb.net

#mysql #vb.net

Вопрос:

Я работаю над школьным проектом, используя Visual Basic Studio и базу данных mysql. В этом проекте есть разные типы пользователей (менеджер, сотрудник). что мне нужно, так это то, что когда пользователь входит в систему под своим именем пользователя и паролем, программа проверяет в базе данных mysql столбец «Роль», чтобы определить, является ли этот пользователь ролью (менеджер или сотрудник), если пользователь является менеджером, он войдет в форму менеджера, иначе он перейдет в форму сотрудника

это часть моего кода:

 Try
    MySqlConn.Open()
    Dim Query As String
    Query = "Select * from etdsql.employeeinfo where Username ='" amp; UNameTextBox.Text amp; "' and password = '" amp; PswrdTextBox.Text amp; "' "
    Command = New MySqlCommand(Query, MySqlConn)
    Reader = Command.ExecuteReader
    Dim count As Integer
    count = 0

    While Reader.Read
        count = count   1
    End While

    If count = 1 Then
        MessageBox.Show("You are loged in successfuly")
        ETDManager.Show()
        Me.Hide()
    Else
        MessageBox.Show("Username and password are not correct")
    End If

    MySqlConn.Close()
Catch ex As MySqlException
    MessageBox.Show(ex.Message)
Finally
    MySqlConn.Dispose()
End Try
  

Комментарии:

1. Если информация о роли находится в той же таблице, просто Select UserRole from yourtable where username = @user and password = @hashedPassword но мы не знаем вашу базу данных, и вы не предоставили нам ничего, чтобы дать более точный ответ. Также обратите внимание, что ваша инструкция sql открыта для внедрения sql и должна быть заменена параметризованной инструкцией.

2. извините за недостаток информации : ( я впервые работаю с VB и не знал, что предоставить вам здесь, роль в той же таблице, и попробую то, что вы предоставляете 🙂 спасибо за вашу помощь, ценю это (^_^)

Ответ №1:

    dim role as string

   While Reader.Read
        count = count   1
        role = Reader("Role") //This is the column's name in your db
    End While

    If count = 1 Then
        MessageBox.Show("You are loged in successfuly")
        if role = "Manager" Then
             ETDManager.Show() 
        else
              ETDEmployee.Show() //This is the name of your Employee form
        end if
        Me.Hide()
    Else
        MessageBox.Show("Username and password are not correct")
    End If

    ```

it could be something like that, but you will have to change the names of the column in the database and the name of the form by the names you have in your project
  

Комментарии:

1. Большое спасибо (^_ ^) это сработало отлично, ценю ваше время и работу