we're trying to commit some insert statements in a transaction to our database as described here http://www.devart.com/dotconnect/oracle ... tMode.html
we're using the dotConnect 6.0.10.0 Beta Version of devart.data.oracle and devart.data 5.0.110.0
I know, that the connection and everything else works, because we can read data, or manually commit the insert statements. But the Transaction.Commit() functions throws an error.
The Error-Message is:
Code: Select all
A first chance exception of type 'System.MissingMethodException' occurred in Devart.Data.Oracle.dll
System.MissingMethodException: Method not found: 'Void Devart.Common.DbMonitor.OnCommit(Devart.Common.DbMonitor, Devart.Common.MonitorTracePoint, System.Data.Common.DbConnection)'.
at Devart.Data.Oracle.OracleMonitor.b(MonitorTracePoint A_0, OracleConnection A_1)
at Devart.Data.Oracle.OracleTransaction.Commit()
at WpfApplication2.MainWindow.RunOracleTransaction(String myConnString) in [...]\WpfApplication2\MainWindow.xaml.cs:line 66
The source code is basicly the one from the example. I only created or own connection String (which was created by my co-worker, but what can't really be the problem, cause anthing else works)
Source Code:
Code: Select all
using System;
using System.Windows;
using Devart.Data.Oracle;
namespace WpfApplication2
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string temp = ";Persist Security Info=True";
string _ip = "A.B.C.D";
string _username = "user";
string _password = "password";
string _sid = "linux";
string _name;
string _direct = "True";
string _provider = "";
string _connection_lifetime = "0";
string _max_pool = "100";
string _min_pool = "0";
string _Pooling = "True";
string _Port = "1521";
String connString = "User Id=" + _username + ";password=" + _password + ";Server=" + _ip + ";Port=" + _Port + ";Pooling=" + _Pooling + ";Min Pool Size=" + _min_pool + ";Max Pool Size=" + _max_pool + ";Connection Lifetime=" + _connection_lifetime + ";Direct=" + _direct + ";Sid=" + _sid + temp;
RunOracleTransaction(connString);
}
public void RunOracleTransaction(string myConnString)
{
OracleConnection myConnection = new OracleConnection(myConnString);
myConnection.Open();
OracleCommand myCommand = new OracleCommand();
OracleTransaction myTrans;
// Start a local transaction
myTrans = myConnection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Transaction = myTrans;
myCommand.Connection = myConnection;
try
{
myCommand.CommandText = "INSERT INTO sit_ellif (lieferant_liefnr) Values(1111)";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "INSERT INTO sit_ellif (lieferant_liefnr,lieferant_suchtext) Values(2222, 'aaaaaa')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}
}
}
Code: Select all
myCommand.CommandText = "commit";
myCommand.ExecuteNonQuery();
I hope anyone out there can help me with out problem.
Thanks!
- Matt