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