求问写入数据库时为什么会报操作符丢失?

Artemisis 2017-07-07 11:45:12
要将计算结果写入数据库。但是为什么会出现错误呢?

'----数ºy据Y库a部?分¤?的Ì?参?数ºy-------------
Public MPCConn As New OleDb.OleDbConnection '
Public MPCDa As New OleDb.OleDbDataAdapter '
Public MPCComm As New OleDb.OleDbCommand '
Public MPCDs As New DataSet '


MPCConn = New OleDb.OleDbConnection
MPCConn.ConnectionString = Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Application.StartupPath & "\WDataBase.accdb '"

MPCComm.Connection = MPCConn
MPCDa.SelectCommand = MPCComm
MPCConn.Open()

MPCComm.CommandText = "select * from 计算结果load"
MPCDa.SelectCommand = MPCComm
MPCDa.Fill(MPCDs, "计算结果load")
MPCDa.FillSchema(MPCDs, System.Data.SchemaType.Mapped)


'----如果数据库中计算结果Load表中有记录,则清空-
If MPCDs.Tables("计算结果load").Rows.Count > 0 Then
MPCComm.CommandText = "delete * From 计算结果load"
MPCComm.ExecuteNonQuery()
MPCDa.DeleteCommand = MPCComm
MPCDs.Tables("计算结果load").Clear()
End If

'----将计算结果写入数据库-

MPCComm.CommandText = "insert into 计算结果Load (计算长度,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40) values (@计算长度,@-40,@-35,@-30,@-25,@-20,@-15,@-10,@-5,@0,@5,@10,@15,@20, @25,@30,@35,@40)"

For i = 1 To ResultNum
MPCComm.Parameters.AddWithValue("@计算长度", SagResult100(i, 0))
MPCComm.Parameters.AddWithValue("@-40", SagResult100(i, 1))
MPCComm.Parameters.AddWithValue("@-35", SagResult100(i, 2))
MPCComm.Parameters.AddWithValue("@-30", SagResult100(i, 3))
MPCComm.Parameters.AddWithValue("@-25", SagResult100(i, 4))
MPCComm.Parameters.AddWithValue("@-20", SagResult100(i, 5))
MPCComm.Parameters.AddWithValue("@-15", SagResult100(i, 6))
MPCComm.Parameters.AddWithValue("@-10", SagResult100(i, 7))
MPCComm.Parameters.AddWithValue("@-5", SagResult100(i, 8))
MPCComm.Parameters.AddWithValue("@0", SagResult100(i, 9))
MPCComm.Parameters.AddWithValue("@5", SagResult100(i, 10))
MPCComm.Parameters.AddWithValue("@10", SagResult100(i, 11))
MPCComm.Parameters.AddWithValue("@15", SagResult100(i, 12))
MPCComm.Parameters.AddWithValue("@20", SagResult100(i, 13))
MPCComm.Parameters.AddWithValue("@25", SagResult100(i, 14))
MPCComm.Parameters.AddWithValue("@30", SagResult100(i, 15))
MPCComm.Parameters.AddWithValue("@35", SagResult100(i, 16))
MPCComm.Parameters.AddWithValue("@40", SagResult100(i, 17))
MPCComm.ExecuteNonQuery()’报错的地方
MPCComm.Parameters.Clear()

Next i

MPCDs.Clear()
MPCDa.Dispose()
MPCConn.Close()

感觉这是很成熟的数据库操作语句,为什么在For i = 1 To ResultNum的循环中,在
MPCComm.ExecuteNonQuery()
语句上会报错呢?报错的内容是:
“语法错误 (操作符丢失) 在查询表达式 '@0,@5,@10,@15,@20,@25,@30,@35,@40' 中。”
这是什么意思啊??
求各位大神帮忙!谢谢!
...全文
243 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
OneCoderr 2017-07-12
  • 打赏
  • 举报
回复
不知道,反正用Parameters之后,好难调试,跟踪不到写入字符串的值,谁有高招,支一下?
取名障碍症 2017-07-07
  • 打赏
  • 举报
回复
参数名不能用数字吧!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧