【发布时间】:2011-11-05 17:18:23
【问题描述】:
我正在执行一条 SQL 插入语句,例如
INSERT INTO Table (fk1, value1) OUTPUT inserted.pk VALUES ('fkv1', 'v1');
其中“pk”是一个自动递增的键值,如:
SqlDataReader reader = cmd.ExecuteReader();
外键与父表冲突,reader.HasRows() 反映了这一点,但是如何检索带有错误描述的实际异常对象?如果删除“OUTPUT”语句,它会很好地抛出异常,但在该语句中,它会吞下错误,并返回“HasRows” == false。
我可以使用“结果视图”属性下的调试器看到错误,但是如何在代码中获取此值?
Sql Server 2008r2 .NET 4.0
感谢您的帮助。
编辑:
此调用不会引发异常。它没有成功完成的唯一迹象是“HasRows”是假的。
【问题讨论】:
-
你试过用 try/catch 块包围这段代码吗?
-
确保
catch(ExceptionType ex),获取异常信息。
标签: c# .net sql-server ado.net