Arnav Varshney Ответов: 0

Ошибки запросов при работе с базой данных в VB.NET


У меня есть два разных экземпляра запросов с двумя разными базами данных. Хотя они выглядят одинаково для меня, один выполняется успешно, в то время как я получаю ошибку в другом!
Запрос 1:-
SELECT        ID, Username, [Password]
FROM            Login
WHERE        (Username = ?) AND ([Password] = ?)

Код 1:-
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim username As String = UsernameTextBox.Text
       Dim password As String = PasswordTextBox.Text
       If Me.LoginTableAdapter.ScalarQuery(username, password) Then
           MessageBox.Show("Logged In Successfully!", "Login Successful", MessageBoxButtons.OK)
       Else
           MessageBox.Show("Incorrect Username/Password!", "Login Error", MessageBoxButtons.OK)
       End If

   End Sub

- > выполняется без каких-либо ошибок!

Запрос 2:-
SELECT        [Employee ID], [Password], [Employee Name], [Amount Due]
FROM            Employees
WHERE        ([Employee ID] = ?) AND ([Password] = ?)

Код 2:-
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim employeeID As Integer = TextBox1.Text
        Dim password As String = TextBox2.Text
        If EmployeesTableAdapter.Login(employeeID, password) Then
            Dim employeeName As String = EmployeesTableAdapter.EmployeeName(employeeID)
            Dim amountDue As String = EmployeesTableAdapter.AmountDue(employeeID)
            Dim txtMsg As String = "Employee Name: " & employeeName&
        End If
    End Sub

- > выполняется с ошибкой!:-
Error	BC30311	Value of type 'Canteen_DataBase_TryDataSet.EmployeesDataTable' cannot be converted to 'Boolean'.


Что я уже пробовал:

Я перепробовал все, что мог понять, сравнивая два кода и запросы, но до сих пор не могу решить свою проблему!
Пожалуйста, помогите!
Заранее спасибо!

CHill60

Попробуйте выполнить второй запрос с помощью EmployeesTableAdapter.ScalarQuery. Ошибка - это ошибка VB. Какой тип EmployeesTableDapater? (Я не знаком с TableAdapter.Авторизоваться)

Richard Deeming

Не храните пароли в виде простого текста! Вы должны хранить только соленую часть пароля пользователя, используя уникальную соль для каждой записи.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]

Arnav Varshney

ScalarQuery и Login - это всего лишь имена запроса.... Они должны быть размещены всякий раз, когда вы связываетесь с этим запросом...или передаете ему значения!

member 8888995

Дим, как целое кодсотрудника = текстовое поле textbox1.Текст
Здесь, пожалуйста, преобразуйте TextBox1. Text в целое число

Arnav Varshney

Спасибо! @член 8888995

0 Ответов