以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请问如何捕获到执行sql 的错误? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141465) |
-- 作者:houseer -- 发布时间:2019/9/29 17:20:00 -- 请问如何捕获到执行sql 的错误? 用定义sqlcommand 这种形式。执行的sql语句,怎么捕获到sql执行的错误呢。比如这个: Try Dim cmd As new SQLCommand cmd.C cmd.CommandText = "se\\ect * from t_ttttt" cmd.ExecuteNonQuery Catch ex As Exception MessageBox.show(222) End Try 数据库中没有t_ttttt这个表, 就会提示。 我怎么捕获这个错误? try好像不管事
|
-- 作者:有点蓝 -- 发布时间:2019/9/29 17:22:00 -- 没有办法捕捉。 |
-- 作者:houseer -- 发布时间:2019/9/29 18:11:00 -- 那再请问蓝老师。。。 sqlcommand里没有办法执行多行的语句吗? insert into table1(1) values(\'111\') insert into table1(1) values(\'222\') 这样的语句,我放到CommandText,是报错的。。。 |
-- 作者:houseer -- 发布时间:2019/9/29 18:36:00 -- 还有关于sql事务的问题: Try Connections("数据库").BeginTransaction() Dim cmd As SQLCommand cmd.ConnectionName = "数据库" cmd.CommandText = "insert into table1(1) values(\'111\')" cmd.ExecuteNonQuery cmd.CommandText = "insert into table1(1) values(\'222\')" cmd.ExecuteNonQuery Connections("数据库").Commit Catch ex As Exception Connections("数据库").Rollback() MessageBox.show(2) End try 老师着语句哪有问题啊? 那俩insert死活不执行。
[此贴子已经被作者于2019/9/29 18:36:34编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/29 20:19:00 -- 如果是SqlServer,把多个语句使用分号隔开即可 insert into table1(1) values(\'111\');insert into table1(1) values(\'222\') 直接把sql复制到数据库里能不能执行? |
-- 作者:houseer -- 发布时间:2019/9/29 20:54:00 -- 噢,加分号可以了。 麻烦版主在看看事务是怎么回事 |
-- 作者:有点蓝 -- 发布时间:2019/9/29 21:10:00 -- 事务没有问题 |
-- 作者:houseer -- 发布时间:2019/9/29 21:15:00 -- 汗。。 少个new, 发现事务里的代码不会提示错误了。。。 |