我试图更新一个名为“instock”的字段(数据库中的类型是双精度的),其中项目代码是一个值(类型是访问数据库中的长整数)。但是,当我尝试更新它们时,我收到一条错误消息,提示“此 oledbparamterCollection 的索引 2 无效,count=2。任何人都可以帮助我吗?
strSQL = "UPDATE tblitem set instock = ? where itemcode= ? "
Using cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\POS.mdb"), _
cmd As New OleDbCommand(strSQL, cn)
cmd.Parameters.Add("?", OleDbType.Double)
cmd.Parameters.Add("?", OleDbType.integer)
cn.Open()
For Each ls As ListViewItem In ListItems.Items
If Not (ls.SubItems(1).Tag(0) = "n") Then
cmd.Parameters(1).Value = (ls.SubItems(1).Tag - ls.SubItems(1).Text)
cmd.Parameters(2).Value = ls.Tag
cmd.ExecuteNonQuery()
End If
Next ls
cn.Close()
End Using
谢谢, + 我在执行此命令时收到此错误“没有为 double 类型找到默认成员”:
strSQL = "UPDATE tblitem set instock = ? where itemcode= ? "
Using cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\POS.mdb"), _
cmd As New OleDbCommand(strSQL, cn)
cmd.Parameters.Add("?", OleDbType.Double)
cmd.Parameters.Add("?", OleDbType.Double)
cn.Open()
For Each ls As ListViewItem In SalesListItems.Items
If Not (ls.SubItems(1).Tag(0) = "n") Then
cmd.Parameters(0).Value = (CDbl(ls.SubItems(1).Tag) + CDbl(ls.SubItems(1).Text))
cmd.Parameters(1).Value = Integer.Parse(ls.Tag)
cmd.ExecuteNonQuery()
End If
Next ls
cn.Close()
End Using