当前位置:编程学习 > C#/ASP.NET >>

TransactionScope报错:“不确定事务”。。。。

代码如下TransactionScope报错:“不确定事务”。。。。 而且只有连我的机器上的oracle库时才会报错,试了连其他的是正常执行的

 string _connectionString = "Provider=OraOLEDB.Oracle.1;data source =(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.231)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)));User Id=test;Password=test;";
            List<string> inTasks = new List<string>() { "heheh"};
            if (inTasks.Count == 0) return;
            TransactionOptions transactionOption = new TransactionOptions();
            //设置事务隔离级别
            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            // 设置事务超时时间为120秒
            transactionOption.Timeout = new TimeSpan(0, 0, 120);
            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, transactionOption))
            {
              
               
                    using (OleDbConnection conn = new OleDbConnection(_connectionString))
                    {
                        conn.Open();
                        using (OleDbCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandType = CommandType.Text;
                            cmd.CommandText = "insert into FMSQueue (TaskGUID, RunTime) values (?, ?)";
                            cmd.Parameters.Add(new OleDbParameter("@TaskGUID", "96fbfa68-8441-4441-8122-7aa43515fa2e"));
                            cmd.Parameters.Add(new OleDbParameter("@RunTime", "2222222"));
                            cmd.ExecuteNonQuery();
                        }
                    }
                   
              
                ts.Complete();
            }
TransactionScope .Net 事务 Oracle --------------------编程问答--------------------    在 System.Transactions.TransactionStatePromotedIndoubt.PromotedTransactionOutcome(InternalTransaction tx)
   在 System.Transactions.TransactionStatePromotedEnded.EndCommit(InternalTransaction tx)
   在 System.Transactions.CommittableTransaction.Commit()
   在 System.Transactions.TransactionScope.InternalDispose()
   在 System.Transactions.TransactionScope.Dispose()
   在 Service.Program.SaveToQueue() 位置 e:\Visual Studio 2012\WCFS706\Service\Program.cs:行号 82
   在 Service.Program.Main(String[] args) 位置 e:\Visual Studio 2012\WCFS706\Service\Program.cs:行号 19
   在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   在 System.Threading.ThreadHelper.ThreadStart() --------------------编程问答-------------------- en  是"事务不确定" 不是 ”不确定事务“ --------------------编程问答-------------------- 这是哪国的写法
cmd.CommandText = "insert into FMSQueue (TaskGUID, RunTime) values (?, ?)";
cmd.Parameters.Add(new OleDbParameter("@TaskGUID", "96fbfa68-8441-4441-8122-7aa43515fa2e"));
cmd.Parameters.Add(new OleDbParameter("@RunTime", "2222222")); --------------------编程问答--------------------
引用 3 楼 51Crack 的回复:
这是哪国的写法
cmd.CommandText = "insert into FMSQueue (TaskGUID, RunTime) values (?, ?)";
cmd.Parameters.Add(new OleDbParameter("@TaskGUID", "96fbfa68-8441-4441-8122-7aa43515fa2e"));
cmd.Parameters.Add(new OleDbParameter("@RunTime", "2222222"));

= =不要在意这些。。。 急着解决事务这个问题啊 --------------------编程问答-------------------- for(){
transaction = conn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = conn;
string sql=“”;
cmd.CommandType = CommandType.Text;
cmd.CommandText = dcwsSql.ToString();
returnValue = cmd.ExecuteNonQuery();
transaction.Commit();
}
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,