我在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. 32位大写 md5 php_编写生成32位大写和小写字符的md5的函数
  2. Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1
  3. C#之windows桌面软件第十二课:电脑ADC值显示(上位机),记忆上次串口号,并用TrackBar控件显示ADC值
  4. hdu 3449(依赖背包)
  5. SVN - 简单使用手册
  6. windows下升级nodejs版本
  7. ie的window.open 未指明的错误_快递问题公告中错误使用“黑恶势力”等言辞 青岛工学院致歉...
  8. 面试题 04.08. 首个共同祖先
  9. 在线CSV转XML/JSON工具
  10. AutoJs学习-实现极乐净土
  11. 在安卓模拟器(mumu为例)上联调app并且用Charles抓包
  12. Spark的基本工作流程
  13. GAMS编写综合能源程序
  14. VS2013 OpenCV 2.4.9 “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )” 错误
  15. LeetCode岛屿的最大面积
  16. 计算机专业的创新方向和创业情况,计算机专业创新创业教育模式探究
  17. 名帖301 刘墉 行书《自作诗卷》
  18. USB过压过流保护芯片,可调限流4A,6V过压关闭
  19. 计算机网络公众号,计算机网络中写公众号文章的软件有哪些
  20. 电除尘器 matlab,基于MATALAB的静电除尘电源技术仿真

热门文章

  1. android实现阅读器底部菜单,android仿新闻阅读器菜单弹出效果实例(附源码DEMO下载)...
  2. 【机器学习的Tricks】随机权值平均优化器swa
  3. 0117 - 深耕 iBooks 标注导入
  4. iphone的ibooks如何导入pdf?
  5. solidworks模板_SOLIDWORKS Costing可以定制模板和标准模板一起使用
  6. 华为2020届逻辑笔试
  7. Jquery 动画效果 左右移动
  8. 使用Disruptor完成多个消费者不重复消费消息
  9. 【ftp】725本电子书下载
  10. core java 英文版