C#的代码如下:
try
{
//调用存储过程
cmd.ExecuteNonQuery();
strErr = cmd.Parameters["@ErrMsg"].value.tostring();//strErr 是存储过程的输出参数
}
catch(Exception e)
(
strErr = e.Message.ToString();
return;
)
测试情况:我通过存储过程往数据库中插入一条重复的记录(已设置主键),调试存储过程时,输出参数strErr的错误消息大概为违反表的主键唯一性约束;但是在C#调试,执行ExecuteNonQuery()后,就跳入catch语句中,strErr的错误消息为Error converting data type nvarchar to int.为什么错误不一样呢?谁能帮我解释下原因,折腾了好几天???
C#调用存储过程,获取异常信息问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- yicp123 2016-06-29 03:17关注
你先手动调下你的存储过程,看存储过程是否抛出异常,如果存储过程调用没有问题,那是不是你的外部程序异常
参考自:
MySQL存储过程详解 http://www.data.5helpyou.com/article314.html解决 无用评论 打赏 举报
悬赏问题
- ¥15 Visual Studio问题
- ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题
- ¥20 在虚拟机的pycharm上
- ¥15 jupyterthemes 设置完毕后没有效果
- ¥15 matlab图像高斯低通滤波
- ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
- ¥15 钢筋实图交点识别,机器视觉代码
- ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)