Моему приложению необходимо выполнить определенный запрос к указанной пользователем строке подключения. Запросу потребуются некоторые параметры, поэтому я подумал об использовании DbProviderFactory в сочетании с myConnection.GetSchema("DataSourceInformation").Rows[0]["ParameterMarkerFormat"]
, чтобы узнать, нужно ли мне использовать :
(Oracle), @
(Sql) или ?
(OleDb) для отправки параметров в базу данных. .
Чтобы использовать DbProviderFactory, мне нужно выяснить, какой Provider необходим для строки подключения. Есть ли хороший способ сделать это, или мне нужно использовать какую-то логику if(conStr.indexOf("oledb") != -1) { type = DbTypes.OleDB; }
? (Или есть лучший способ подключиться к «неизвестному» типу базы данных?)
Примечание. DbProviderFactory ожидает, что поставщик будет иметь форму System.Data.SqlClient
, а не SQLNCLI.1
, которая находится в фактической строке подключения.