我在oracle中用C#调用这个proc.我让proc返回错误.换句话说,proc失败并且pv_error用字符串填充并且回滚被触发,但是不起作用.我不知道为什么.那么,我做错了什么?提前致谢.

private void hhrcv_update_dc_grs_carton()

{

OracleCommand cmd = new OracleCommand();

cmd.Connection = conn;

conn.Open();

OracleTransaction trans = conn.BeginTransaction();

cmd.CommandTimeout = 0;

cmd.CommandText = "dc.hhrcv_update_dc_grs_carton";

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("pn_dc_grs_no", OracleDbType.Number).Value = txtDcGRSNo.Text;

cmd.Parameters.Add("pn_pallet_id_no", OracleDbType.Number).Value = txtPalletId.Text;

cmd.Parameters.Add("pn_carton_code", OracleDbType.VarChar).Value = txtCartonCode.Text;

cmd.Parameters.Add("pn_company_id_no", OracleDbType.Number).Value = Companyid;

cmd.Parameters.Add("pn_order_no", OracleDbType.Number).Value = txtOrderno.Text;

cmd.Parameters.Add("pn_emp_id_no", OracleDbType.Number).Value = empid;

cmd.Parameters.Add(new OracleParameter("pv_error", OracleDbType.VarChar));

cmd.Parameters["pv_error"].Direction = ParameterDirection.Output;

string pv_error;

cmd.ExecuteNonQuery();

pv_error = cmd.Parameters["pv_error"].Value.ToString();

if (pv_error.ToString() == "")

{

trans.Commit();

}

else

{

trans.Rollback();

MessageBox.Show("" + pv_error, "Error");

frmReturns r = new frmReturns();

r.Show();

this.Hide();

}

}

>存储过程未提交

> Oracle SQL开发人员自动提交已禁用

>当我在Oracle SQL开发人员中运行存储过程时,它可以工作(失败 – 就像我已经完成并且没有提交)

>只有在VS2005中运行存储过程时,proc才会失败,触发回滚但不执行它

oracle 事务提交回滚吗,c# – 提交和回滚Oracle事务相关推荐

  1. 事务的回滚和不提交的区别

    当出现异常,事务没有提交,不回滚有影响吗? 1. 在同一事务条件下,回滚和不提交,表现是一样的 但是还有些差别 事务处理,是将操作事件交给数据库(模拟)运行,直到commit操作,才使得修改实际产生效 ...

  2. sql事务提交回滚命令_提交,回滚和保存点SQL命令

    sql事务提交回滚命令 Transaction Control Language(TCL) commands are used to manage transactions in the databa ...

  3. oracle+ddl+执行很慢,Oracle的DDL语句不能回滚(直接提交)

    在Oracle中,Oracle执行DDL前会发出一个COMMIT语句,然后执行DDL操作,最后再发出一个COMMIT操作. 附: DDL(data definition language):creat ...

  4. git 代码回滚_能提交到远程的Git回滚

    很多情况下我们需要回滚代码,最容易想到的就是git reset.但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了. 做一下试验,一个文件 ...

  5. git如何回滚到指定commit(提交),如何回滚代码

    一.假若你始终在一台电脑上提交上传代码,如果你需要回滚到指定commit, 1.直接Git bash打开本地项目所在文件夹, 2.然后输入指令Git log会查看提交历史, 3.找到并复制你要的com ...

  6. Oracle误操作--被提交后的数据回退(闪回)

    由于一时的粗心,在做update操作时,忘记了加where条件,导致全表数据被修改.此类错误实属不该!!特此记录一下!! 网上搜索Oracle数据回退操作,介绍如下: 闪回级别 闪回场景 闪回技术 对 ...

  7. 一个事务中 可以查询自己未提交的数据吗_数据库事务的方方面面

    事务 是关系型数据的一个重要特性,但很少有人能对事务有全面性的了解,这篇文章就把事务的方方面面讲给你. 事务的概念 什么是事务 数据库事务(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的 ...

  8. 分布式事务解决方案之2PC(两阶段提交)入门简介

    什么是2PC?       2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase).提交阶段(commit phase),2是指两个阶段,P是指准备阶段,C是指提 ...

  9. 分布式事务专题(三):分布式事务解决方案之2PC(两阶段提交)

    目录: 基础概念 分布式事务理论 分布式事务解决方案之2pc(本章) 分布式事务解决方案之TCC 分布式事务解决方案之可靠消息最终一致性 分布式事务解决方案之最大努力通知 分布式事务综合案例分析 3. ...

  10. Mysql学习笔记之事务详解(读未提交、读以提交、可重复读、串行化读)

    文章目录 1.事务概述 2.事务特性 3.事务隔离级别 4.演示事务 4.1.演示读未提交 4.2.演示读已提交 4.3.演示可重复读 4.4.演示串行化读 1.事务概述 什么是事务? 一个事务是一个 ...

最新文章

  1. 皮一皮:看看你有没有在自杀...
  2. 皮一皮:35岁后你做什么?
  3. java stop和int,JAVA并发任务中止的isinterrupted,interupted()
  4. MFC略缩图控件实现
  5. linux java usb 串口_2019-11-02 Linux下USB-串口的使用
  6. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
  7. python交换数组中的两个元素_[Python]华为面试题,交换两个数组的元素使之总和的差值最小。...
  8. Modbus协议栈应用实例之四:ModbusTCP服务器应用
  9. php中 怎么去除,php如何去掉链接
  10. python常用算法包_Python中常用的包--sklearn
  11. 日志不说谎--Asp.net的生命周期
  12. Linux C语言解析 yaml,c – 用yaml cpp解析yaml
  13. Eclipse创建JSON文件及其他操作
  14. 洛谷 P3382(三分查找凹点和凸点)
  15. 基于微信小程序的物流仓储系统
  16. 最全华为ensp路由器启动失败错误代码40怎么办?
  17. 使用ROS和AprilTags进行相机定位(二维码定位全流程)
  18. C#随机函数Radom问题详解
  19. @Validated使用
  20. plc做45度的正弦值

热门文章

  1. IDEA绿色护眼色设置(含代码区 项目结构区 运行区)
  2. 证明ABC猜想:意义重大,却无人能识?
  3. 解决android启动白屏问题
  4. 使用NVM安装NodeJS并解决npm下载依赖失效问题(最全流程)
  5. 大学生学计算机打字速度,小学生计算机打字速度研究报告
  6. HDU2717 Catch That Cow ( BFS )
  7. 世界杯感悟--我的2022卡塔尔世界杯
  8. easyAR学习(一)
  9. JAVA SE8 OCA/OCP和PL/SQL OCA/OCP认证书籍推荐
  10. java图片管理系统_基于Java的图片管理信息系统的设计与实现