У меня есть таблица в моей базе данных SQL с:vb.net журнала базы данных SQL в запросе
- Первичный ключ: ID
- Иностранный Key: Автоперевозчик ID
- Column1: Имя пользователя
- COLUMN2 : Пароль
Идентификатор уникален, внешний ключ может быть 1 (JKP) или 2 (Clarke), имя пользователя и пароль различаются каждый раз.
Моя форма имеет выпадающий который включает в себя название компаний: JKP, Кларк
Если JKP выбран он проходит 1 в текстовом поле
Если Кларк выбран он проходит от 2 до текстовое поле
Затем текстовые поля Username и Password.
У меня есть аналогичный журнал в работе, но я не могу заставить его работать. Я предположил, что значение текстового поля будет достаточным для столбца внешнего ключа, а имя пользователя и пароль будут поступать из текстовых полей. Это код, который у меня есть, когда я его запускаю, я просто получаю окно с сообщением о неправильном имени пользователя или пароле.
Может кто-нибудь, пожалуйста, скажите мне, где я иду не так?
Try
Dim haulier As Integer
If combohaulier.SelectedItem = "John K Philps" Then
haulier = 1
Else
haulier = 2
End If
Dim objconnection1 As SqlConnection = New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Cara\Documents\Visual Studio 2012\Projects\Online Portal Solutions\Online Portal Solutions\Online Portal Solutions Database.mdf;Integrated Security=True")
objconnection1.Open()
Dim SelectStmt1 As String = "SELECT * FROM [2HaulierLogIn] WHERE HaulierID='" & haulier & "' AND Username='" & txt_cusername.Text & "' COLLATE SQL_Latin1_General_CP1_CS_AS AND Password='" & txt_cpassword.Text & "' COLLATE SQL_Latin1_General_CP1_CS_AS ;"
Dim objcommand1 As SqlCommand = New SqlCommand(SelectStmt1, objconnection1)
Dim reader1 As SqlDataReader = objcommand1.ExecuteReader
If reader1.Read Then
If haulier = 1 And txt_hpassword.Text <> reader1("Password").ToString And txt_husername.Text <> reader1("Username").ToString Then
frm_Rhauljkphome.Show()
Me.Hide()
txt_husername.Clear()
txt_hpassword.Clear()
End If
ElseIf reader1.Read Then
If haulier = 2 And txt_hpassword.Text <> reader1("Password").ToString And txt_husername.Text <> reader1("Username").ToString Then
Me.Hide()
frm_Shaulclarkehome.Show()
txt_husername.Clear()
txt_hpassword.Clear()
End If
Else
Static count1 As Integer = 0
Dim prompt1 As DialogResult = MessageBox.Show("Invaild Username or Password.", "Login Error",
MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning)
Select Case prompt1
Case Windows.Forms.DialogResult.Retry
txt_husername.Text = ""
txt_hpassword.Text = ""
count1 += 1
If count1 = 3 Then
MessageBox.Show("High value of failed login attempts." & vbCrLf & "Application will be terminated for security reasons.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Stop)
End
End If
Case Windows.Forms.DialogResult.Cancel
Application.Exit()
End Select
End If
Catch ex As Exception
End Try
Спасибо за вашу помощь, я взял все это, но это не имеет никакого значения. Я думаю, что это как-то связано с читателем. Я немного изменил его, что было опубликовано выше. Я отредактирую вопрос с тем, что у меня есть сейчас. Я занимаюсь этим уже несколько дней. Мне действительно нужно заставить его работать. –