簡體   English   中英

使用 VB.net 的 SQL 參數

[英]SQL Parameters using VB.net

所以我試圖向從輸入框獲取並存儲在變量中的數據庫添加一個名稱。 我已經嘗試了很多這里建議的東西。 目前此代碼未將任何內容放入數據庫。

Private Sub BTNadd_Click(sender As Object, e As EventArgs) Handles BTNadd.Click
    Dim i As String
    Dim j As Integer = 0
    'asks user for a name
    'loop to check the name is not a space, re-asks the question
    Do While j = 0
        i = InputBox("Please enter Member's name", "Need More Input")
        If i = " " Then
            MessageBox.Show("You must enter a name to continue.")
        ElseIf i = "" Then
            Exit Sub
        Else
            j = 1
        End If
    Loop
    'check for duplicates
    If LBmembers.Items.Contains(i) Then
        MessageBox.Show(i & " is already on the list.", "Error")
    Else
        Dim dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
        Dim dbSource = "Data Source= C:\members.mdb "
        Dim SqlQuery As String =
            "INSERT INTO tblMembers (Member) VALUES ('@ID');"
        'add member to database
        Using con = New OleDb.OleDbConnection(dbProvider & dbSource)
            Using cmd = New OleDb.OleDbCommand(SqlQuery, con)
                con.Open()
                cmd.Parameters.AddWithValue("@ID", OleDb.OleDbType.Variant).Value = i
                con.Close()
            End Using
        End Using
        LBmembers.Items.Add(i)
    End If
End Sub

以下代碼在嵌套的 Usings 中使用,並將 @ID 輸入到 members 列中

con.Open() 
cmd.Parameters.Add("@ID", OleDb.OleDbType.Variant) 
cmd.Parameters("@ID").Value = i 
cmd.ExecuteNonQuery() 
con.Close() 

對此的任何幫助將不勝感激。

我看到兩個問題。 第一個是您的查詢語法,@ @ID在引號內

Dim SqlQuery As String =
    "INSERT INTO tblMembers (Member) VALUES ('@ID');"

你應該刪除引號

Dim SqlQuery As String =
    "INSERT INTO tblMembers (Member) VALUES (@ID);"

第二個問題是你從來不執行查詢,加參數后加cmd.ExecuteNonQuery()

Using cmd = New OleDb.OleDbCommand(SqlQuery, con)
    con.Open()
    cmd.Parameters.AddWithValue("@ID", OleDb.OleDbType.Variant).Value = i
    cmd.ExecuteNonQuery()
    con.Close()
End Using

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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