Итак, я работаю над формой входа/регистрации в vb.net Я создал базу данных и логин работает хорошо, но моя форма регистрации не хочет вставлять значения в базу данных. Вот код, который у меня есть. Я не уверен, что происходит неправильно.vb.net логин/форма регистрации не работает
Public Class frmRegister
Private Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click
txtUsernameRegister.Focus()
If txtUsernameRegister.Text = "" Or txtPasswordRegister.Text = "" Then
MessageBox.Show("Please enter Username And Password!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
txtUsernameRegister.Focus()
Else
Dim sqlConnection1 As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\userDB.accdb")
Dim cmd As New System.Data.OleDb.OleDbCommand
sqlConnection1.Open()
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "INSERT INTO userDB (username, password) VALUES ('" & txtUsernameRegister.Text & "', '" & txtPasswordRegister.Text & "')"
cmd.Connection = sqlConnection1
sqlConnection1.Close()
frmLogin.Show()
Hide()
End If
End Sub
End Class
** Предупреждение ** ваш код чрезвычайно уязвим для SQL-инъекций! –
a [mcve] было бы здорово. также ** никогда ** хранить текстовые пароли. –
Ваш код не работает, потому что он никогда не выполняет инструкцию INSERT. Вы назначаете 'cmd.CommandText', а затем закрываете соединение. Как вы ожидаете, что он сохранит данные, когда вы ничего не сделаете, чтобы сохранить данные? Магия? Кроме того, ваш код чрезвычайно уязвим для SQL-инъекций, которые могут подвергнуть риску все ваши данные. Найдите здесь * [vba.net] параметризованные запросы * и узнайте, как это сделать правильно ** теперь **, прежде чем вы привыкнете к плохой практике кодирования. –