日期:2014-05-17  浏览次数:20928 次

关于ExecuteNonQuery 调用存储过程返回受影响行数的问题
ExecuteNonQuery 执行slq语句时可以返回受影响的行数,现我用ExecuteNonQuery执行存储过程。存储地程中并没有写返回值,ExecuteNonQuery增、删、改执行都没有问题返回是1 ,不知道这样是否合理,我的方法中是有事物和错误处理的,既然返回的受影响的行数是对的,会不会出现,程序执行成功而 存储过程执行失败,ExecuteNonQuery返回的任然是1 ,是不是必须要在存储过程中添加一个返回值,来确定数据是否成功呢。哪总更合理一些。我用的是oracle11
------解决方案--------------------
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1;
这些情况最好是在存储过程中自己再定义异常捕捉
------解决方案--------------------
不会,你的procedure没有定义输出参数 。就像代码里面jdbc也只有execute()才会返回int,但是一般的hibernate save()都是void的 。我自己的理解你参考下