-1
У меня есть следующий фрагмент кода всякий раз, когда я пытаюсь зарегистрировать часть имени пользователя, похоже, выполняется даже для имени пользователя, которого нет в базе данных. Не знаю, где это неправильно, любая помощь будет оценена.Вставить в базу данных в vb не работает
'Connecting to SQL Database and executing Query------------------------------------------
Dim Strconn As String = "Data Source=.\SQLEXPRESS; Database=QuizDB; Integrated Security = true"
Dim Strcmd As String = "INSERT INTO reg_info(uname,pass,fname,lname,dob,course,college) VALUES ('" & user_name.Text & "','" & con_pass.Text & "', '" & first_name.Text & "', '" & last_name.Text & "', '" & dob.Text & "', '" & course.Text & "', '" & college.Text & "');"
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim sqlcmd As SqlCommand
sqlconn = New SqlConnection(Strconn)
Try
sqlconn.Open()
Catch ex As Exception
MsgBox("Could not connect to DataBase. Application will close now!", vbCritical, "Database Error")
End
End Try
sqlcmd = New SqlCommand(Strcmd, sqlconn)
da.SelectCommand = sqlcmd
sqlcmd.Dispose()
sqlconn.Close()
'Exception Handling-----------------------
Dim exc As Exception = Nothing
Try
da.Fill(ds)
Catch ex As Exception
exc = ex
Finally
If Not (exc) Is Nothing Then
MsgBox("User Name Already Exist. Please select a different User Name!", vbExclamation, "Already Exist")
user_name.Focus()
Else
MsgBox("Registration Successful.", vbInformation, "Successful")
Me.Close()
Login.Show()
End If
End Try
Почему вы используете * в 'Exception' объекта * для вашей условной? Почему вы игнорируете исключение *? Когда вы отлаживаете это, как * конкретно * он терпит неудачу? Если 'exc' имеет значение, что это за значение? Какое исключение? (Подсказка: игнорирование ошибок не является особенно эффективным способом разрешения этих ошибок.) – David
Это неправильный способ создания SQL. Используйте параметры SQL вместо конкатенации строк. Вместо этих ужасных сообщений Catch выдает реальное сообщение об исключении, и вы, по крайней мере, знаете, что такое ошибка. Исключения не предназначены для управления потоком кода. И пароли никогда не должны храниться как plaintext, hash them – Plutonix
Спасибо, много парней. Фактически, новичок в vb, и я использую его объект исключения, потому что я думал, что это правильный способ сделать это. Я также знаю, что SQL-инъекция тоже. Мне просто нужно конкретное руководство о том, как это сделать. Спасибо –