0
有人可以告訴我在編碼中我做了什麼嗎?我試圖將用戶登錄名和密碼與數據庫中的用戶名和密碼相匹配。如果得到了行並匹配,那麼用戶將能夠登錄到系統中,但似乎我的系統只能讀取數據表的第一行(在數據庫內)。檢查現有的表格行
這是我目前使用的編碼。
Private Sub CheckLogin()
Dim lCnn As New SqlConnection
Dim lCmd As New SqlCommand
Dim lRd As SqlDataReader
Dim lsCmd As String
If TextBoxLogin.Text = "" Then
MsgBox("Enter your Username.")
Try
TextBoxLogin.Focus()
Catch ex As Exception
End Try
ElseIf TextBoxPass.Text = "" Then
MsgBox("Enter your Password.")
Try
TextBoxPass.Focus()
Catch ex As Exception
End Try
Else
lCnn.ConnectionString = GetConnString()
lCnn.Open()
lCmd.Connection = lCnn
lsCmd = "SELECT * FROM UserInfo..UserInfo "
lsCmd &= " INNER JOIN UserInfo..UserAccess ON UserLogin = UA_UserLogin "
lsCmd &= " WHERE (UserLogin = " & SQLQuote(Trim(TextBoxLogin.Text)) & " AND UserPassword = " & SQLQuote(Trim(TextBoxPass.Text))
lsCmd &= " AND UserActive = 1"
lsCmd &= " AND UA_AICode = 'MENU')"
lCmd.CommandText = lsCmd
lRd = lCmd.ExecuteReader()
If lRd.HasRows Then
lRd.Read()
lbLoginSuccess = True
gsLoginID = Trim(TextBoxLogin.Text)
gsUserPass = Trim(TextBoxPass.Text)
Me.Close()
Else
lnCurRetry += 1
Alert("Wrong Username or Password.")
End If
lRd.Close()
lCnn.Close()
End If
If Not lbLoginSuccess Then
If lnCurRetry >= 3 Then
Me.Close()
End If
End If
End Sub
我感謝您的幫助。謝謝。
結果仍然是一樣的。我的編碼應該能夠讓用戶(任何用戶參考數據庫)用正確的用戶名和密碼登錄系統? – Emerald
如果Query功能在SQL管理和NOT功能之外(例如通過TCP/IP),則問題可能與SQL不接受外部連接有關。你確定其他最簡單的查詢從外部程序運行到SQL嗎? –
對不起,我的壞。我的編碼其實是正確的。我忘記了我只爲管理員設置了訪問權限。這就是爲什麼它只讀1行。我很抱歉。是否有可能將其刪除?這樣人們就不會混淆 – Emerald