Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как предотвратить попытки подключения OleDbConnection к распределенной транзакции?

Автор вопроса: JeremyWeirОтветов: 1

Я использую OleDB для подключения к файлу Excel с помощью этой строки подключения

@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES"""

Но когда я это делаю (внутри TransactionScope ())

using (OleDbConnection conn = new OleDbConnection(connectionString))
{
    conn.Open();
    ...
}

Я получаю следующую ошибку

Интерфейс ITransactionLocal не поддерживается поставщиком Microsoft.ACE.OLEDB.12.0. Локальные транзакции недоступны для текущего провайдера.

Как мне заставить OleDbConnection не пытаться подключиться к распределенной транзакции? У класса SqlConnection свойство ConnectionString называется Enlist, но я не могу найти эквивалентную конфигурацию или метод для OleDB.

  • Но ведь это же локальная сделка? Ошибка касается только локального, а не распределенного. Я не уверен насчет вашего случая, но, возможно, мой пост здесь [faiz.kera.la/2009/08/26/ может вам помочь. Faiz 12.10.2009
  • да, ошибка говорит о локальной транзакции, но нет явной локальной транзакции, только TransactionScope JeremyWeir 12.10.2009

transactionsoledb

Ответы

Ответ 1 · рейтинг 12 · Reza Ahang

В строке подключения добавьте следующий код: "; OLE DB Services = -4;"

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы