使用datagrid中的值更新访问权限

时间:2011-04-01 19:32:43

标签: vb.net ms-access

无法使用以下功能

更新访问中的表格
Private Sub btnUpdate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpdate.Click


Dim cn As New OleDbConnection(Con)
        Dim objUpdateCommand As New OleDbCommand
        Dim objDataAdapter As New OleDbDataAdapter
        cn.Open()
        Const SQLExpression As String = "UPDATE product SET Value = @pValue where owner = @powner and Item = @pItem;"
        objUpdateCommand = New OleDbCommand(SQLExpression, cn)

        With objUpdateCommand
            .Parameters.Add("@powner", OleDbType.VarChar, 10, "owner")
            .Parameters.Add("@pItem", OleDbType.VarChar, 8, "Item")
            .Parameters.Add("@pValue", OleDbType.VarChar, 10, "Value")
        End With

        objDataAdapter.UpdateCommand = objUpdateCommand

        MsgBox("Table Updated")

End Sub

3 个答案:

答案 0 :(得分:0)

设置updateCommand属性不会执行该命令。您需要调用表适配器的更新方法。

查看更多信息here

答案 1 :(得分:0)

您不必使用适配器来运行带或不带参数的更新语句。 用这个替换你的代码(objDataAdapter.UpdateCommand = objUpdateCommand):

Dim UpdateResultValue as Integer

UpdateResultValue = objUpdateCommand.ExecuteNonQuery

If UpdateResultValue = 0 Then
   msgbox "Table Update Failed"
Else
   msgbox "Table Updated"
End if

如果返回零,则它不起作用(UpdateResultValue = 0)。如果不从数据库表返回值(可能过度简化),则使用ExecuteNonQuery。

答案 2 :(得分:0)

您的参数需要与查询中使用的参数顺序相同。