2014-02-13 5 views
0

У меня есть таблица в моей базе данных 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 

ответ

0

Только предположение, Если HaulierID является внешним ключом и может иметь значение 1 (JKP) или 2 (Кларк), бы это нужны эти одиночные кавычки, завернутые на TextBox1.Text значение на sql заявление?

Dim SelectStmt1 As String = "SELECT * FROM [2HaulierLogIn] WHERE Username='" & _ 
    txt_cusername.Text & "' COLLATE SQL_Latin1_General_CP1_CS_AS AND Password='" & _ 
    txt_cpassword.Text & "' COLLATE SQL_Latin1_General_CP1_CS_AS AND HaulierID=" & _ 
    TextBox1.Text & ";" 
+0

Спасибо за вашу помощь, я взял все это, но это не имеет никакого значения. Я думаю, что это как-то связано с читателем. Я немного изменил его, что было опубликовано выше. Я отредактирую вопрос с тем, что у меня есть сейчас. Я занимаюсь этим уже несколько дней. Мне действительно нужно заставить его работать. –

Смежные вопросы