NyikoB Ответов: 1

Форма входа в систему с использованием access в качестве подключения к базе данных


Я проектировал как для in visual basic.net. В этой форме пользователь должен ввести данные для входа, то есть имя пользователя и пароль, чтобы открыть основную форму. пользователи создаются в базе данных access. Вызов я получил сообщение об ошибке на кнопку входа в форму. и в сообщении говорится: "конец
ожидаемого заявления" я приложил код

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

Цитата:
Попробуй
-Конн.Открыть()
'MsgBox("Susscess")

Dim sql As String = "SELECT * FROM tbl_user WHERE username='" & txtUsername.Текст & "' и пароль = '" & txtPassword.Текст & "'"
Dim sqlCom как новая система.Data.Oledb для.Объект oledbcommand(для SQL)

- Открыть Соединение С Базой Данных
sqlCom.Соединение = conn
Коннектикут.Открыть()

1 Ответов

Рейтинг:
5

Maciej Los

Чтобы решить вашу проблему, пожалуйста, прочтите это: Ожидаемый конец инструкции - Visual Basic | Microsoft Docs[^]
Если это код дыры, то вы должны это знать Try инструкция должна заканчиваться словами End Try. Видеть: Попробуй...Поймать...Оператор Finally - Visual Basic | Microsoft Docs[^]

Есть еще несколько вещей, которые нужно улучшить...
1. Ваш код уязвим для sql-инъекций. Видеть: Инъекция SQL - SQL Server | Microsoft Docs[^]
Вы должны использовать параметры!

2. Вы не должны хранить пароль в виде простой строки. Пожалуйста, прочтите это: Хранение паролей: как это сделать.[^]

3. Вы должны использовать Использование Инструкции - Visual Basic | Microsoft Docs[^] для управления располагаемыми ресурсами (объектами).

Так...

Dim ConnString As String = "..."
Dim dt As DataTable = New DataTable()
Dim sCommand As String = "SELECT * FROM Table1 WHERE SomeField=?;"
Using conn As New OleDbConnection(connString)
    conn.Open()
    Using cmd As New OleDbCommand(sCommand, conn)
        cmd.Parameters.AddWithValue("?", SomeValue)
        Using reader AS OleDbDataReader = cmd.ExecuteReader()
            dt.Load(reader)
        End Using
    End Using
End Using