簡體   English   中英

Visual Basic 在數據庫訪問中創建用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM