Ошибки запросов при работе с базой данных в 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