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——您正在吞咽代码可能报告的所有错误