登錄成功后,我需要一些幫助,將我的資料庫中的 SQL 資料直接放入 Textbox1(名字)和 Textbox2(姓氏)中。基本上,我的代碼驗證用戶名、密碼和電子郵件(使用我的 sql 表中存盤的密碼、用戶名和電子郵件)。然后,它應該將附加到用戶名、密碼和電子郵件的名字和姓氏放入 textbox1 和 textbox2。但是,我嘗試過的所有教程都使用下拉串列。有人可以告訴我我需要什么才能讓我的那部分代碼正確運行嗎?這是我第一次嘗試。這是我的代碼:
Protected Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If TextBox7.Text = Nothing Then
MsgBox(“Please enter Username”, vbExclamation, “Error”)
Exit Sub
End If
If TextBox8.Text = Nothing Then
MsgBox(“Please enter Password”, vbExclamation, “Error”)
Exit Sub
End If
If TextBox9.Text = Nothing Then
MsgBox(“Please enter Email”, vbExclamation, “Error”)
Exit Sub
End If
Dim un, pw, em, dbUN, dbPW, dbEM As String
un = TextBox7.Text
pw = TextBox8.Text
em = TextBox9.Text
Dim cmdUN As New SqlCommand("Select UserName from MembershipInfo where UserName = @p1", con)
With cmdUN.Parameters
.Clear()
.AddWithValue("@p1", un)
End With
Dim cmdPW As New SqlCommand("Select Password from MembershipInfo where UserName = @p1", con)
With cmdPW.Parameters
.Clear()
.AddWithValue("@p1", un)
End With
Dim cmdEM As New SqlCommand("Select Email from MembershipInfo where UserName = @p1", con)
With cmdEM.Parameters
.Clear()
.AddWithValue("@p1", un)
End With
Dim cmdPUN As New SqlCommand("Select Firstname, Lastname From MembershipInfo where Username = @p1, Password = @p2, Email = @p3")
Dim myreader As SqlDataReader
With cmdPUN.Parameters
.Clear()
.AddWithValue("@p1", un)
.AddWithValue("@p2", pw)
.AddWithValue("@p3", em)
End With
Try
If con.State = ConnectionState.Closed Then con.Open()
dbUN = cmdUN.ExecuteScalar
dbPW = cmdPW.ExecuteScalar
dbEM = cmdEM.ExecuteScalar
myreader = cmdPUN.ExecuteReader()
myreader.Read()
If myreader.HasRows Then
TextBox1.Text = myreader.Item("Firstname").ToString
TextBox2.Text = myreader.Item("Lastname").ToString
End If
Catch ex As Exception
Response.Write(ex.Message)
Finally
con.Close()
End Try
If (un = dbUN And pw = dbPW And em = dbEM) Then
MsgBox("Login Sucessful", vbExclamation, "Welcome")
Else
If un <> dbUN Then
MsgBox("Username does not match, please try again", vbExclamation, "Error")
Else
If pw <> dbPW Then
MsgBox("Password does not match, please try again", vbExclamation, "Error")
Else
If em <> dbEM Then
MsgBox("Email does not match, please try again", vbExclamation, "Error")
End If
End If
End If
End If
TextBox7.Text = String.Empty
TextBox8.Text = String.Empty
TextBox9.Text = String.Empty
End Sub
uj5u.com熱心網友回復:
我原以為電子郵件可以唯一標識您的用戶,而無需用戶名。您永遠不應該將密碼存盤為純文本。我在上次給你的回答里已經解釋過了。我希望你回去看看。我為您的控制元件提供了描述性名稱,我建議您也這樣做。
Protected Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
If Not ValidateInput() Then
Exit Sub
End If
Dim dt As DataTable
Try
dt = ValidateUser(txtUserName.Text, txtEmail.Text, txtPassword.Text)
Catch ex As Exception
Response.Write(ex.Message)
Exit Sub
End Try
If dt.Rows.Count > 0 Then
txtFirstName.Text = dt(0)("Firstname").ToString
txtLastName.Text = dt(0)("Lastname").ToString
MsgBox("Login Sucessful", vbExclamation, "Welcome")
txtUserName.Text = String.Empty
txtEmail.Text = String.Empty
txtPassword.Text = String.Empty
End If
End Sub
Private Function ValidateInput() As Boolean
If txtUserName.Text = Nothing Then
MsgBox(“Please enter Username”, vbExclamation, “Error”)
Return False
End If
If txtEmail.Text = Nothing Then
MsgBox(“Please enter Email”, vbExclamation, “Error”)
Return False
End If
If txtPassword.Text = Nothing Then
MsgBox(“Please enter Password”, vbExclamation, “Error”)
Return False
End If
Return True
End Function
Private Function ValidateUser(UName As String, Email As String, PWord As String) As DataTable
Dim dt As New DataTable
Using cn As New SqlConnection("Your connection string."),
cmdUN As New SqlCommand("Select FirstName, LastName from MembershipInfo where UserName = @User And Email = @Email And Password = @Password", cn)
cmdUN.Parameters.Add("@User", SqlDbType.VarChar).Value = UName
cmdUN.Parameters.Add("@Email", SqlDbType.VarChar).Value = Email
cmdUN.Parameters.Add("@Password", SqlDbType.VarChar).Value = PWord
cn.Open()
Using reader = cmdUN.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/372867.html
下一篇:型別'Observable<ArrayBuffer>'不可分配給型別'Observable<HttpResponse<User>>
