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