2016-04-27 7 views
-2

Итак, я работаю над формой входа/регистрации в 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 
+0

** Предупреждение ** ваш код чрезвычайно уязвим для SQL-инъекций! –

+0

a [mcve] было бы здорово. также ** никогда ** хранить текстовые пароли. –

+0

Ваш код не работает, потому что он никогда не выполняет инструкцию INSERT. Вы назначаете 'cmd.CommandText', а затем закрываете соединение. Как вы ожидаете, что он сохранит данные, когда вы ничего не сделаете, чтобы сохранить данные? Магия? Кроме того, ваш код чрезвычайно уязвим для SQL-инъекций, которые могут подвергнуть риску все ваши данные. Найдите здесь * [vba.net] параметризованные запросы * и узнайте, как это сделать правильно ** теперь **, прежде чем вы привыкнете к плохой практике кодирования. –

ответ

0

Чтобы оформить предложение в комментарии Кена Уайта, вам нужно позвонить ExecuteNonQuery по вашей команде, чтобы фактически выполнить его в базе данных.

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

Также не рекомендуется хранить пароли открытого текста в базе данных по соображениям безопасности. Вы должны изучить хеширование, чтобы узнать, как это делается правильно.