2012-08-24 45 views
0

我正嘗試使用參數更新訪問數據庫中的多行。我已經必須編寫代碼才能插入數據庫,但我需要相同類型的代碼來更新數據庫。 我更新的字符串看起來像Update tblitem set instock='value' where itemcode='value2' 這裏是我的代碼中插入:使用oledb參數更新訪問數據庫中的多行

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 
+0

您是否忘記更新代碼示例以顯示更新語句而不是插入語句? –

回答

0

你應該在最基本的層面上,可以修改您的SQL字符串來表示參數佔位符爲你做了(?)你的插入查詢,如

Update tblitem set instock=? where itemcode=?

超出了這個概念,比如創建/設置參數,基本上是相同的。希望我能正確理解你的問題。祝你好運。

相關問題