首页 新闻 搜索 专区 学院

数据并发会出现 :此 OracleTransaction 已完成 ;不再可用 的异常么?

0
解决于 2017-08-23 15:11
 public OracleDataReader RunOracleProcedure(string storedProcName, IDataParameter[] parameters)
    {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
            iConn.Open();

            using (OracleCommand sqlCmd = BuildQueryOracleCommand(iConn, storedProcName, parameters))
            {
                using (IDbTransaction iTrans = iConn.BeginTransaction())
                {
                    sqlCmd.Transaction = (OracleTransaction)iTrans;
                    try
                    {
                        OracleDataReader odr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
                        iTrans.Commit();
              

              //这里是写操作日志:什么时候哪个方法调用的什么存储过程名称
StackTrace trace = new StackTrace(); MethodBase methodName = trace.GetFrame(1).GetMethod(); Common.WriteContrleLog(string.Format("{0} {1}", methodName.Name, storedProcName)); iConn.Close(); return odr; } catch (Exception ex) { iTrans.Rollback(); iConn.Close(); throw ex; } } } } }

这段代码就是执行存储过程,然后这个方法会被非常频繁的调用,所以这个会不会出现这个问题?

老板栗的主页 老板栗 | 菜鸟二级 | 园豆:202
提问于:2016-01-12 17:50
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册