Access数据库使用参数化更新,参数值会无效

求助:Access数据库使用参数化更新,参数值会无效?
Private Sub UpdateProduct()
  Dim sProductNo As String = "ProductNo"
  Dim sNamed As String = "Named"
  Dim sBarcode As String = "Barcode"
  Dim nRowAffected As Integer = 0
  Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;")
  con.Open()
  Using cmd As New OleDbCommand("update Products set ProductNo=@ProductNo,Named=@Named where Barcode=@Barcode", con)
  cmd.Parameters.AddWithValue("@ProductNo", sProductNo)
  cmd.Parameters.AddWithValue("@Named", sNamed)
  cmd.Parameters.AddWithValue("@Barcode", sBarcode)
  nRowAffected = cmd.ExecuteNonQuery()
  End Using
  End Using
  End Sub
上面的代码执行正确,但如果换一下参数的顺序,结果就会出错:
cmd.Parameters.AddWithValue("@Named", sNamed)
cmd.Parameters.AddWithValue("@ProductNo", sProductNo)
cmd.Parameters.AddWithValue("@Barcode", sBarcode)
当代码的顺序是这样的时候,数据库中Named=ProductNo,ProductNo=Named。
我在SQL Server 2005中试过,没有这个问题,是Access不支持这样的操作吗?求高手为我解答一下。


------解决方案--------------------
有些数据库的确不支持按名称的参数赋值,实际上你写什么名字都无所谓,它只是按照顺序赋值上去
参考
http://www.cnblogs.com/Barton131420/archive/2005/08/10/211215.html