[英]Visual basic Create Users in database access
我正在做一個程序,我需要在數據庫中創建用戶訪問。 但是在輸入數據並單擊創建用戶按鈕后,它給了我一個錯誤。 如果您將用戶添加到數據庫它可以工作,但如果您嘗試通過程序添加它,結果是語法錯誤
Else
Try
Dim myconnection As OleDbConnection
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Software_Simples\Software\DataBase.accdb"
myconnection = New OleDbConnection(constring)
myconnection.Open()
Dim sqlQry As String
'sqlQry = "INSERT INTO Usernames(Username, Password) VALUES(" & TextBox2.Text & "," & TextBox3.Text & ")"
sqlQry = "INSERT INTO Usernames(ID_User, Username, Password) VALUES(Null,TextBox2.Text,TextBox3.Text )"
Dim cmd As New OleDbCommand(sqlQry, myconnection)
cmd.ExecuteNonQuery()
myconnection.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'Fechar
Me.Close()
MessageBox.Show("Utilizador criado com suecesso: " & username_create, "Aviso", MessageBoxButtons.OK)
End If
您的代碼中至少存在三個問題:
1) 密碼是保留關鍵字。 需要在方括號之間
2)傳遞給數據庫的字符串值需要在單引號之間,但是..見第3點
3)使用參數而不是字符串連接(如果密碼包含單引號怎么辦?)
4)處理連接和命令等一次性對象。
所以重寫
Dim constring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Software_Simples\Software\DataBase.accdb"
Dim sqlQry = "INSERT INTO Usernames(Username, [Password]) VALUES(@name, @pwd)"
Try
Using myconnection = New OleDbConnection(constring)
Using cmd As New OleDbCommand(sqlQry, myconnection)
myconnection.Open()
cmd.Parameters.Add("@name", OleDbType.VarWChar).Value = TextBox2.Text
cmd.Parameters.Add("@pwd", OleDbType.VarWChar).Value = TextBox3.Text
cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
它應該是:
sqlQry = "INSERT INTO Usernames (ID_User, Username, [Password]) VALUES (Null,'" + TextBox2.Text + "','" + TextBox3.Text + "')"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.