sqlLink.ConnectionString =「Provider = Microsoft.ACE.OLEDB.12.0; Data Source ='C:\ Users \ will \ Documents \ Computing \ ComputingProjectDatabase.accdb';」 sqlLink.Open() 嘗試 如果txtUsername.Text = 「」 那 MSGBOX( 「你沒有輸入用戶名!」) 返回 elseif的txtPassword.Text = 「」 那 MSGBOX(「你沒有輸入密碼! 「) 返回 elseif的txtPassword.Text <> txtPasswordConf.Text然後 MSGBOX(」 您的密碼不匹配!「) 返回 否則
VB Access數據庫防止重複輸入錯誤
Using sqlOrder As New OleDbCommand
Dim sqlCheck As New OleDbCommand
sqlCheck.CommandText = "SELECT count(*) FROM LoginSystem WHERE username = @username"
sqlCheck.Parameters.AddWithValue("@username", txtUsername.Text)
Dim oleRdr As OleDbDataReader
oleRdr = sqlCheck.ExecuteReader()
If oleRdr.HasRows = True Then
oleRdr.Read()
If oleRdr.Item(0) = 0 Then
sqlOrder.CommandText = "INSERT INTO LoginSystem ([Username], [Password], [PasswordConf]) VALUES ('" & txtUsername.Text & "','" & txtPassword.Text & "','" & txtPasswordConf.Text & "')"
sqlOrder.ExecuteNonQuery()
MsgBox("You have successfully registered, you can log in now!")
Else
MsgBox("Username is not currently available, please choose new username.")
End If
End If
End Using
End If
Catch ex As Exception
MsgBox("An error occurred:" & ex.Message)
End Try
sqlLink.Close()
Me.Close()
LoginScreen.Show()
End Sub
再次>>。 <這裏只是一個小問題。每次我創建一組登錄數據(在這種情況下,用戶名是Heather,密碼是Trentshop)的副本時,我會返回一個尷尬的「數據已保存」,然後出現一個長錯誤,指出數據未保存爲已經有可用的重複。
理想情況下,我希望它只是說「用戶名已被使用,請選擇一個新的」。我用ExceptDuplicateName和其他類似的類型來弄清楚。但由於某種原因,我無法理解這一點。我想我錯過了一些非常明顯的東西,在這種情況下,如果有人能夠幫助我解決這個問題,那將是一個很大的幫助。 <
我將它集成到代碼中,它看起來應該可以工作,但是我得到一個「Connection not established error from」,而不是完全確定,從未真正體驗過它。很奇怪。 –
您可能需要在連接對象上使用.Open()方法,然後才能執行讀取器 – 5uperdan
,並且需要設置oledb命令的連接屬性: sqlCheck.Connection = sqlLink – 5uperdan