dotnet中调用存储过程的用法,包含事务处理

原创 2007年09月13日 11:08:00

簡單的存儲過程如下:

using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;



public partial class TaskAdministration_test : System.Web.UI.Page
...{
    
protected void Page_Load(object sender, EventArgs e)
    
...{
       

    }


    
protected void Button1_Click(object sender, EventArgs e)
    
...
        ExcelOperation OEM 
= new ExcelOperation();
        
string isCommit = "Y";
        Database db 
= DatabaseFactory.CreateDatabase();
        DbConnection tconn 
= db.CreateConnection();
        DbCommand cmd 
= tconn.CreateCommand();
        DbCommand cmd1 
= tconn.CreateCommand();
       tconn.Open();
       DbTransaction ttran
= tconn.BeginTransaction();
       cmd.Connection 
= ttran.Connection;
       cmd1.Connection 
= ttran.Connection;
       cmd.Transaction 
= ttran;
       cmd1.Transaction 
= ttran;
       
try
       
...{
           cmd.CommandText 
= "PR_INSERTDM";
           cmd.CommandType 
= CommandType.StoredProcedure;
            OEM.AddInParameter(cmd, 
"ptaskid",txt1.Text);
            OEM.AddInParameter(cmd, 
"proleid",  txt2.Text);
            OEM.AddInParameter(cmd, 
"pmembername", txt3.Text);
            cmd.ExecuteNonQuery();
         
            cmd1.CommandText 
= "PR_INSERTDT";
            cmd1.CommandType 
= CommandType.StoredProcedure;
            OEM.AddInParameter(cmd1, 
"PTASKID", txt4.Text);
            OEM.AddInParameter(cmd1, 
"PROLEID", txt5.Text);
            OEM.AddInParameter(cmd1, 
"PDEPTNAME", txt6.Text);
            cmd1.ExecuteNonQuery();
       }

       
catch(Exception ex)
       
...{
           isCommit 
= "No";
           tconn.Close();
       }

       
finally
       
...{
           
if (isCommit == "No")
           
...{
               ttran.Rollback();
               
throw new Exception("操作失敗!");
           }

           
else
           
...{
               ttran.Commit();
           }

           tconn.Close();
       }
      
    }

}

説明:1.存儲過程和類都比較簡單,目的是盡量簡單的説明在事務中調用多個存儲過程的用法.

2.可能有比這個更好的代碼,如果願意你可以發表你的評論,我很樂意接受.

dotnet中调用存储过程的用法,不含事务处理

簡單的存儲過程如下:CREATE OR REPLACE PROCEDURE CMS.PR_INSERTDM (ptaskid varchar2,proleid integer,pmembername ...
  • linxi27
  • linxi27
  • 2007年09月13日 10:33
  • 529

php调用sqlserver存储过程使用事务处理

第一次编写sqlserver存储过程并在php里调用,把脑瓜都整大了,奋战了一天多最后还是搞定了。 实现功能:在sqlserver里面实现事务处理,保证数据库操作安全; 接收sqlserver存储...
  • luochuan
  • luochuan
  • 2013年05月13日 13:35
  • 1241

oracle存储过程的事务处理

oracle存储过程的事务处理 url: http://www.cnblogs.com/linjiqin/archive/2011/04/18/2019990.html 1、事务用于确保数据的...
  • jackpk
  • jackpk
  • 2013年04月16日 20:36
  • 2076

mysql 存储过程实现事务方法

DROP PROCEDURE IF EXISTS pro_test; create procedure pro_test(out rtn int) begin declare err INT def...
  • auspi12341
  • auspi12341
  • 2013年12月06日 11:10
  • 4662

存储过程 与 事务管理

高级SQL
  • laoj1228
  • laoj1228
  • 2016年08月03日 00:08
  • 775

几种存储过程的调用方法

1、查询分析器中CREATE PROC COUNTJIANGJIN(@gzyear char(4),@gzmonth char(2),@gzzhanghao char(18),@sumkh_jj fl...
  • cui55
  • cui55
  • 2006年08月10日 16:56
  • 8728

Oracle存储过程的commit和rollback,sqlerrm

最近ld说要把之前写得好好的一套存储过程说改成java,什么意思听起来不对劲呀。意思是不要用proc了,改成mybatis的sql,达到屏蔽差异性的效果。。。哈哈不是这么回事啊,首先proc里肯定用到...
  • yicong406880638
  • yicong406880638
  • 2016年04月19日 15:12
  • 4589

SQLServer 存储过程 带事务处理实例(四)

CREATE procedure [dbo].******* ( @smallOrderNo varchar(50), @phoneModel varchar(50), @beginBoxNo ...
  • xie_xiansheng
  • xie_xiansheng
  • 2017年03月07日 14:01
  • 2149

SpringMVC与Mybatis集合实现调用存储过程、事务控制

在SSM框架中经常会用到调用数据库中的存储过程、以及事务控制,下面以保存某单据为例,介绍一下: 1、Oracle中存储过程代码如下(主要逻辑将单据编码自动加1,并将该单据编码返回): CREATE O...
  • Jay_1989
  • Jay_1989
  • 2016年08月11日 17:16
  • 6220

spring管理下的声明式事务与存储过程之间的记录

1.spring声明式事务并不能管理存储过程的事务,存储过程需要另外添加事务: 例如:存储过程捕获异常然后回滚: create procedure inserttrabzsu() begi...
  • shenbushen
  • shenbushen
  • 2016年06月22日 15:42
  • 1696
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dotnet中调用存储过程的用法,包含事务处理
举报原因:
原因补充:

(最多只允许输入30个字)