表thdpurbackm update trigger如下:
IF @@ERROR <> 0
begin
rollback
raiserror('更新库存失败!库存不能为负数。',16,1)
end
前端代码如下:
lcmd.CommandText = " UPDATE thdpurbackm " & _
" SET fstate = 'C' ,fcheckman='" & Pub_username & "', fcheckdate = '" & GetDateTime() & "'" & _
" WHERE ( fhdshopno = '" & ls_fhdshopno & "' ) AND " & _
" ( fbackno = '" & ls_fbackno & "' ) " Try
lcmd.ExecuteNonQuery()
Catch sqlerr As SqlException
MessageBox.Show(sqlerr.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
问题点:
资料没有更新成功,单怎么捕获不到任何异常。
如改为如下无条件执行就可以么捕获到异常,但这不是我要的效果.
IF @@ERROR <> 0
rollback
raiserror('更新库存失败!库存不能为负数。',16,1)
IF @@ERROR <> 0
begin
rollback
raiserror('更新库存失败!库存不能为负数。',16,1)
end
前端代码如下:
lcmd.CommandText = " UPDATE thdpurbackm " & _
" SET fstate = 'C' ,fcheckman='" & Pub_username & "', fcheckdate = '" & GetDateTime() & "'" & _
" WHERE ( fhdshopno = '" & ls_fhdshopno & "' ) AND " & _
" ( fbackno = '" & ls_fbackno & "' ) " Try
lcmd.ExecuteNonQuery()
Catch sqlerr As SqlException
MessageBox.Show(sqlerr.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
问题点:
资料没有更新成功,单怎么捕获不到任何异常。
如改为如下无条件执行就可以么捕获到异常,但这不是我要的效果.
IF @@ERROR <> 0
rollback
raiserror('更新库存失败!库存不能为负数。',16,1)
解决方案 »
- 如何根据treeview选中的checkbox点击“查询”,便可在DatagridView中显示相关数据库表中的信息
- 求一个C#写的AES加密算法
- 有人用过这个iTextSharp.text.pdf类吗
- 创建AD用户时候的密码加密问题
- 在程序运行过程中,后台产生了一个不定长的字符串数组,前台如何取得该数组中指定位置的字符串?请至少写出两种方法
- 关于comboBox中的模糊查找问题
- 问Remoting高手,可以传个DataSet对象给服务器端处理吗?
- windows 服务重新安装 Error 1001 指定的服务已存在
- 帮帮忙,我已经连接TCP/IP连接了服务器?但不知道怎么接收数据啊
- 〓〓〓如何获知一个窗口即将最小化?〓〓〓
- datatable中查找指定字段相同的Datarow,在线等,急
- 怎样用算出三维加速度啊
sql不能把所有的异常捕获,特别是业务逻辑层面的,比如你定义库存是int型 它的范围是从-2,147,483,648到 2,147,483,647 这种情况下sql就会认为负数也是正常数据,不会抛出异常
IF @@ERROR < > 0
rollback
raiserror( '更新库存失败!库存不能为负数。 ',16,1)
--------------------------------------------------------------
改成这样你的:raiserror( '更新库存失败!库存不能为负数。 ',16,1) 始终都要执行吧