采用ODAC 10.2.0.2 版本,
编写如下代码:
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
string str = "Insert into test1 (AA,BB,CC,DD) values(:AA,:BB,:CC,:DD)"; OracleConnection OraConn = new OracleConnection (m_dataConnection); try
{
OraConn.Open(); OracleCommand OraCom = new OracleCommand(str, OraConn); OraCom.Parameters.Add("AA", OracleDbType.Varchar2 ,part.AA, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("BB", OracleDbType.Varchar2, part.BB, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("CC", OracleDbType.Varchar2, part.CC, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("DD", OracleDbType.Varchar2, part.DD, System.Data.ParameterDirection.Input); int i = OraCom.ExecuteNonQuery(); if (i == 0)
{
return false;
}
else
{
return true;
}
}
catch(Exception ex)
{
return false;
}
finally
{
if (OraConn.State == System.Data.ConnectionState.Open)
{
OraConn.Close();
}
}
}在打开数据库(Open())时,出现异常,【无法登记分布式事务处理】,经过初步检查,MSDTC可以正常启动。MSDTC按照网上写的默认设置。操作系统为WINDOWS 7 旗舰版。
编写如下代码:
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
string str = "Insert into test1 (AA,BB,CC,DD) values(:AA,:BB,:CC,:DD)"; OracleConnection OraConn = new OracleConnection (m_dataConnection); try
{
OraConn.Open(); OracleCommand OraCom = new OracleCommand(str, OraConn); OraCom.Parameters.Add("AA", OracleDbType.Varchar2 ,part.AA, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("BB", OracleDbType.Varchar2, part.BB, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("CC", OracleDbType.Varchar2, part.CC, System.Data.ParameterDirection.Input);
OraCom.Parameters.Add("DD", OracleDbType.Varchar2, part.DD, System.Data.ParameterDirection.Input); int i = OraCom.ExecuteNonQuery(); if (i == 0)
{
return false;
}
else
{
return true;
}
}
catch(Exception ex)
{
return false;
}
finally
{
if (OraConn.State == System.Data.ConnectionState.Open)
{
OraConn.Close();
}
}
}在打开数据库(Open())时,出现异常,【无法登记分布式事务处理】,经过初步检查,MSDTC可以正常启动。MSDTC按照网上写的默认设置。操作系统为WINDOWS 7 旗舰版。
没有弄过,google 结果: 如果将本机添加为链接服务器,来执行分布式事务,就会报
服务器: 消息 7391,级别 16,状态 1,行 5
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB ' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB ' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
的错误
如果有其他机器肯定可以。http://topic.csdn.net/t/20040312/10/2835706.html
在连接串加入属性:Omit Oracle Connection Name=True