我正在使用VB .Net循環遍歷一個正則表達式匹配並生成一條sql語句。我創建了這樣的SQLVB .NET OleDbCommand在SQL語句結尾處返回缺少分號(;)
sql = "Insert Into Agencies (Address) Values"
While MatchObj.Success
sql = sql & "(""" & MatchObj.Groups(1).Value & """), "
MatchObj = MatchObj.NextMatch()
End While
sql = sql.Substring(0, Len(sql) - 2) & ";"
,所以當我創建後打印SQL眼前的窗口,我得到這個:
Insert Into Agencies (Address) Values(" 1330 W Indian School Rd, "), (" 3323 E Baseline Rd, "), (" 207 N Gilbert Rd, "), (" 3160 S. Gilbert Rd., Ste. 4, ");
我然後使用SQL語句創建一個OleDbCommand的。我可以連接到數據庫,但是當我運行.ExecuteNonQuery()時出現此錯誤:「在SQL語句結尾處缺少分號(;)」
我的目標是使用單個INSERT將所有這些值進入數據庫列「地址」。
任何幫助,非常感謝。
編輯: 這裏是我用來打開和執行
Public Sub executeSQL(ByVal sql As String)
Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Local Projects\AgenciesAZ.mdb'"
Dim conn As OleDbConnection = New OleDbConnection(connString)
Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)
conn.Open()
cmd.ExecuteNonQuery() 'error hits here
conn.Close()
End Sub
哪個數據庫?您能否顯示使用的連接字符串以及用於將命令發送到數據庫的代碼? – Steve
您使用雙引號而不是括號內的單引號括起來。當你使用單引號時會發生什麼:'... Values('123 ABC,'),('456 XYX,');'? – TLS
單引號返回相同的錯誤 – user1457296