2012-08-24 2 views
0

매개 변수를 사용하여 액세스 데이터베이스에서 여러 행을 업데이트하려고합니다. 이미 데이터베이스에 삽입하려면 코드를 작성해야하지만 데이터베이스를 업데이트하려면 동일한 유형의 코드가 필요합니다. 당신이 그랬던 것처럼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

코드 샘플을 업데이트하여 insert 문 대신 update 문을 표시하는 것을 잊지 않았습니까? –

답변

0

당신은 가장 기본적인 수준에서, 매개 변수의 자리를 표시하기 위해 SQL 문자열을 수정할 수 있어야한다 (?) : 내 업데이트 문자열이 Update tblitem set instock='value' where itemcode='value2' 처럼 보이는 여기에 내 코드를 삽입하는 것입니다 당신의 삽입 쿼리, 예를 들어

Update tblitem set instock=? where itemcode=?

넘어서는 개념, 예를 들어/생성 매개 변수를 설정은 기본적으로 동일합니다. 희망을 잘 이해하고 있습니다. 행운을 빕니다.

관련 문제