0

パラメータを使用してアクセス データベースの複数の行を更新しようとしています。データベースに挿入するコードを既に作成する必要がありますが、データベースを更新するには同じタイプのコードが必要です。私の更新文字列は次のようUpdate tblitem set instock='value' where itemcode='value2' になります。挿入するコードは次のとおりです。

strSQL = "insert into tbltrans2 (transid,itemcode,itemname,qty,price,[total],btw) values ( ?,?,?,?,?,?,?)"
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.VarChar).Value = txtTransId.Text
    cmd.Parameters.Add("?", OleDbType.VarChar, 10)
    cmd.Parameters.Add("?", OleDbType.VarChar, 50)
    cmd.Parameters.Add("?", OleDbType.Integer)
    cmd.Parameters.Add("?", OleDbType.Decimal)
    cmd.Parameters.Add("?", OleDbType.Decimal)
    cmd.Parameters.Add("?", OleDbType.VarChar, 50)

    cn.Open()
    For Each ls As ListViewItem In ListItems.Items
        cmd.Parameters(1).Value = ls.Tag
        cmd.Parameters(2).Value = ls.SubItems(0).Text
        cmd.Parameters(3).Value = Integer.Parse(ls.SubItems(1).Text)
        cmd.Parameters(4).Value = Decimal.Parse(ls.SubItems(2).Text)
        cmd.Parameters(5).Value = Decimal.Parse(ls.SubItems(3).Text)
        cmd.Parameters(6).Value = ls.SubItems(5).Text
        cmd.ExecuteNonQuery()
    Next ls
End Using
4

1 に答える 1

0

最も基本的なレベルでは、挿入クエリで行ったように、SQL 文字列を変更してパラメーターのプレースホルダー (?) を示すことができるはずです。

Update tblitem set instock=? where itemcode=?

それ以上の概念、たとえばパラメータの作成/設定などは本質的に同じです。あなたの問題を正しく理解していることを願っています。幸運を。

于 2012-08-24T14:48:44.337 に答える