【发布时间】:2014-09-03 22:45:30
【问题描述】:
执行代码以将数据插入数据库时,我收到以下错误:
system.data.oledb.oledbexception (0X80040E14): 插入语法错误 进入声明
这是我的代码:
Public Sub put_data(ByVal lstpart As List(Of String), lstpartid As List(Of String), lstmanufacturer As List(Of String), lstmanufacturerid As List(Of String), lstprice As List(Of String), lstpartdescription As List(Of String), ByVal lstpartimg As List(Of Image))
Dim intCurrentRecord As Integer = 0
Dim strSQL As String
Dim ds As New DataSet
' Dim sqlcmd As OleDbCommand
MsgBox(MyCn.State.ToString, vbOK, "test")
Try
Do While intCurrentRecord <= lstpart.Count - 1
strSQL = "Insert into Parts (Part, [Part ID],Manufacturer,Prices,[Manufacturer ID],[Part Description] VALUES (?,?,?,?,?,?)"
strSQL = strSQL.Replace(vbCrLf, " ")
Using MyCn
Using sqlcmd = New OleDbCommand(strSQL, MyCn)
sqlcmd.Parameters.AddWithValue("@p1", lstpart(intCurrentRecord))
sqlcmd.Parameters.AddWithValue("@p2", lstpartid(intCurrentRecord))
sqlcmd.Parameters.AddWithValue("@p3", lstmanufacturer(intCurrentRecord))
sqlcmd.Parameters.AddWithValue("@p4", lstprice(intCurrentRecord))
sqlcmd.Parameters.AddWithValue("@p5", lstmanufacturerid(intCurrentRecord))
sqlcmd.Parameters.AddWithValue("@p6", lstpartdescription(intCurrentRecord))
sqlcmd.ExecuteNonQuery()
End Using
End Using
intCurrentRecord += 1
Loop
Catch ex As Exception
MsgBox(ex.ToString, vbOK, "Error")
End Try
dbclose()
【问题讨论】:
-
您在插入语句中有语法错误。您的列列表至少缺少
)。Using MyCn是否意味着MyCn将在End Using处变为Dispose?因为你似乎在重复使用MyCn(Do While ...)。 -
您好像在列列表末尾缺少
)。 -
是的,我遍历了一些包含将数据插入每一行的数据的列表。
标签: sql-server database vb.net ado.net