'instock'(データベースではタイプはdouble)というフィールドを更新しようとしました。ここで、itemcodeは値です(アクセスデータベースではタイプは長整数です)。しかし、それらを更新しようとすると、「count=2のこのoledbparamterCollectionのインデックス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