我想用COM+的MTS管理管理数据库的事务,数据库是Oracle, 使用OLEDB连接,出现如下错误:
System.Data.OleDb.OleDbException: 没有可用的错误信息: XACT_E_TMNOTAVAILABLE(0x80
04D01B)。
为什么呢?怎么解决?以下为代码:注释掉的部分为连接SQLServer,运行正确,就是连接Oracle不行!using System;
using System.EnterpriseServices;namespace TestMTS
{ [Transaction(TransactionOption.Required)]
public class Class1:System.EnterpriseServices.ServicedComponent
{
public Class1()
{
}
[AutoComplete]
public void doTest()
{
try
{ System.Data.OleDb.OleDbConnection connOrcl = new System.Data.OleDb.OleDbConnection("Provider=MSDAORA; User Id = dbo; Password = xxx; Data Source = XXX");
connOrcl.Open();
string sql1 = "insert into tb_airlinetype values(7,'test7','test7',0)";
System.Data.OleDb.OleDbCommand commo = new System.Data.OleDb.OleDbCommand(sql1,connOrcl);
commo.ExecuteNonQuery();
connOrcl.Close(); // Console.Write("doTest()");
// string connStr = "user=sa;password=xxx;database=northwind;server=172.20.128.163";
//
// System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr);
// conn.Open();
// string sql = "insert into categories values(11,'test','test',null)";
// System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand(sql,conn);
// comm.ExecuteNonQuery();
// comm.ExecuteNonQuery();
// conn.Close();
}
catch(Exception e)
{
//ContextUtil.SetAbort();
throw e;
}
}
}
}
System.Data.OleDb.OleDbException: 没有可用的错误信息: XACT_E_TMNOTAVAILABLE(0x80
04D01B)。
为什么呢?怎么解决?以下为代码:注释掉的部分为连接SQLServer,运行正确,就是连接Oracle不行!using System;
using System.EnterpriseServices;namespace TestMTS
{ [Transaction(TransactionOption.Required)]
public class Class1:System.EnterpriseServices.ServicedComponent
{
public Class1()
{
}
[AutoComplete]
public void doTest()
{
try
{ System.Data.OleDb.OleDbConnection connOrcl = new System.Data.OleDb.OleDbConnection("Provider=MSDAORA; User Id = dbo; Password = xxx; Data Source = XXX");
connOrcl.Open();
string sql1 = "insert into tb_airlinetype values(7,'test7','test7',0)";
System.Data.OleDb.OleDbCommand commo = new System.Data.OleDb.OleDbCommand(sql1,connOrcl);
commo.ExecuteNonQuery();
connOrcl.Close(); // Console.Write("doTest()");
// string connStr = "user=sa;password=xxx;database=northwind;server=172.20.128.163";
//
// System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr);
// conn.Open();
// string sql = "insert into categories values(11,'test','test',null)";
// System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand(sql,conn);
// comm.ExecuteNonQuery();
// comm.ExecuteNonQuery();
// conn.Close();
}
catch(Exception e)
{
//ContextUtil.SetAbort();
throw e;
}
}
}
}
解决方案 »
- DevExpress.XtraEditors.XtraForm的类型初始值设定项引发异常
- 如何取最新记录
- winform添加Arraylist类型的全局变量
- .NET的一个新手数据库链接错误.请高手指点.
- 在.net(C# )中如何取消一个窗体的关闭。
- 请用过三楼楼长oa的大侠帮忙看看
- 100分请高人指点2个关于时间的简单问题~!
- 各位大峡,如何把为空INT型的数据写回数据库,不要想象的简单~-~
- TableMapping问题.
- winform datagridvew 绑定图片时会出现闪烁的情况,有办法解决吗?小白一枚。
- CSC打包时出现找不到原有DLL
- 新手问题::::类的属性成员应该怎么理解呀?
连接字符串用这个:"Data Source=MyOracleDB;User Id=username;Password=passwd;Integrated Security=no;"
http://community.csdn.net/Expert/topic/4219/4219146.xml?temp=.6879694