У меня возникла эта проблема повторения с одним из веб-сервисов, над которыми я работаю. Я использую транзакции и пакетное обновление с использованием адаптеров данных. Кроме того, я также использую Oracle Command Builder для получения команд вставки/удаления/обновления, которые я назначаю в dataadapter.Объект транзакции не связан с объектом соединения - OracleClient
Вот некоторые извлеченные коды из моей службы; и с линией ошибки:
Ум это - я отправляю код, извлеченный из моего источника:
OracleTransaction trx = null;
if ((Transaction.Current.TransactionInformation.DistributedIdentifier == Guid.Empty))
{
con.ConnectionString = con.ConnectionString + ";enlist=false"; ;
con.Open();
trx = con.BeginTransaction();
cmd.Transaction = trx;
}
try
{
dsEmpData.AcceptChanges();
for (int i = 0; i < dsEmpData.Tables[0].Rows.Count; i++)
{
dsEmpData.Tables[0].Rows[i].SetAdded();
}
OracleCommandBuilder cb = new OracleCommandBuilder();
string SQL
= "--MY SELECT COMMAND. REMOVED BECAUSE IT IS NOT NECESSARY IN THIS BLOCK";
OracleDataAdapter da = new OracleDataAdapter(SQL, ConnectionString);
OracleCommandBuilder cmdInsert = new OracleCommandBuilder(da);
dsEmpData.Tables[0].TableName = "TABLENAME".ToUpper();
if ((Transaction.Current.TransactionInformation.DistributedIdentifier == Guid.Empty))
{
da.SelectCommand.Transaction = trx;
da.InsertCommand = cmdInsert.GetInsertCommand();//ERROR LINE
da.InsertCommand.Transaction = trx;
}
da.Update(dsEmpData, "TABLENAME".ToUpper());
if (trx != null)
{ trx.Commit(); }
}
catch (Exception ex)
{
if (trx != null)
{ trx.Rollback(); }
throw new FaultException("MY MESSAGE " + ex.Message);
}
Так что, как было сказано выше - я получаю исключение «Объект сделка не связана с соединением объект "на указанной выше строке: da.InsertCommand = cmdInsert.GetInsertCommand();
Любая помощь по этому вопросу будет высоко оценена. Если вам нужна дополнительная информация, любезно сообщите мне.
Заранее спасибо.
Woah - Возможно, это будет возможно! Позвольте мне проверить, и я вернусь к вам. –
Bravo! Это сделал трюк. Огромное спасибо! Cheers –
Thx для ответа помогло значительно понять проблему, с которой мы имеем дело с сторонним программным обеспечением. – boutta