У меня есть приложение, которое должно подключиться к базе данных SQL и выполнить задание агента SQL.
Строка подключения, к которой я пытаюсь получить доступ, хранится в реестре, который достаточно легко извлекается.
Это приложение должно быть запущено на нескольких компьютерах, и я не могу гарантировать, что формат этой строки подключения является согласованным на этих компьютерах. Например, два, которые я вытащил:
Data Source=Server1;Initial Catalog=DB1;Integrated Security=SSPI;
Data Source=Server2;Initial Catalog=DB1;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;
Я могу использовать объект типа System.Data.SqlClient.SqlConnection
для подключения к базе данных с первой строкой подключения, однако, я получаю следующую ошибку, когда передаю вторую:
ключевое слово не поддерживается: 'поставщик'
Аналогичным образом, я могу использовать объект типа System.Data.OleDb.OleDbConnection
для подключения к базе данных со второй строкой подключения, однако, я получаю следующую ошибку при передаче первой ей:
Поставщик OLEDB не был указан в ConnectionString '
Я могу решить эту проблему, отсканировав строку на предмет «Провайдер» и выполнив подключение условно, однако я не могу не чувствовать, что есть лучший способ сделать это и обработать строки подключения более общим способом.
У кого-нибудь есть предложения?