C# Oracle: эта операция требует, чтобы объекты использовали одно и то же соединение.C#

Место общения программистов C#
Ответить
Anonymous
 C# Oracle: эта операция требует, чтобы объекты использовали одно и то же соединение.

Сообщение Anonymous »

Я пытаюсь использовать API Oracle C# (OracleDependency), чтобы мое приложение получало уведомление от Oracle при добавлении, изменении или удалении строки. Для этого я сначала регистрирую таблицы, по которым хочу получать уведомления. Все работает нормально, пока я использую то же соединение Oracle. Однако я хотел бы, чтобы мое приложение прослушивало несколько баз данных Oracle. Независимо от того, использую ли я одну OracleDependency для всех или одну для каждого соединения, я получаю одну и ту же ошибку: «эта операция требует, чтобы объекты использовали одно и то же соединение.
Эта ошибка появляется в строке «cmd.ExecuteNonQuery();< /p>
Спасибо
private void registerDependency(string tableName, OracleConnection cnx)
{
string query = "SELECT * FROM " + tableName;

OracleCommand cmd = new OracleCommand(query, cnx);
Console.WriteLine($"Creating command for {tableName}, cmd instance: {cmd.GetHashCode()}");

try
{
var reader = cmd.ExecuteReader();
reader.Read();
reader.Close();
}
catch (Exception )
{
return;
}
var dep = createOracleDependency();
dep.AddCommandDependency(cmd);

cmd.AddRowid = true;
cmd.Notification.IsNotifiedOnce = false;

try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
Console.WriteLine($"Erreur : {e.Message}");
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»