Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access SQL更新查询未更新表_Sql_Vb.net_Winforms_Ms Access - Fatal编程技术网

Access SQL更新查询未更新表

Access SQL更新查询未更新表,sql,vb.net,winforms,ms-access,Sql,Vb.net,Winforms,Ms Access,我写了一个代码来更新以减少文本框中的一些值,如下所示 Textbox4.Text使用value=“5”减少表中的PRO\u余额字段 与表中的PRO\u ID字段匹配的值为30000的Combobox2.Text Try Dim constr As String = ConfigurationManager.ConnectionStrings("WindowsApplication1.My.MySettings.DatabaseMobileConnectionString").Co

我写了一个代码来更新以减少文本框中的一些值,如下所示
Textbox4.Text使用value=“5”
减少表中的
PRO\u余额
字段 与表中的
PRO\u ID
字段匹配的值为30000的
Combobox2.Text

   Try
     Dim constr As String = ConfigurationManager.ConnectionStrings("WindowsApplication1.My.MySettings.DatabaseMobileConnectionString").ConnectionString
        'Dim con As New OleDbConnection(constr)
        'Dim cmd As OleDbCommand
        Dim cmdtext As String = "UPDATE  PRODUCT" & _
                              " SET       PRO_BALANCE = PRO_BALANCE -?" & _
                              " WHERE  (PRO_ID = ?)"
      Using con As New OleDbConnection(constr)
            Using cmd As New OleDbCommand(cmdtext, con)
                cmd.CommandType = CommandType.Text
                cmd.Parameters.Add("@pro_Balance", OleDbType.SmallInt).Value = Val(TextBox4.Text)
                cmd.Parameters.Add("@Pro_ID", OleDbType.SmallInt).Value = Val(ComboBox2.Text)
                con.Open()
               cmd.ExecuteNonQuery()
                con.Close()
            End Using
        End Using

    Catch ex As Exception

    End Try
没什么,场上的PRO_平衡保持不变,没有减少

PRO_ID      PRO_BALANCE
30000       50
是的

PRO_ID      PRO_BALANCE
30000       45

有可能存在另一个连接阻止写入您的数据库


确保任何可能与数据库有打开连接的进程都已关闭。

这可能与您的数据类型有关
OleDbType.SmallInt
映射到Int16,这样Id就快要溢出了。同时使用Val返回一个Double,这样就可以进行数据转换。另外,去掉空的Try/Catch——您正在吞咽代码可能报告的所有错误