В моем приложении C#, у меня есть примерно следующий код:Не понимаю, почему DbProviderFactories.GetFactory возвращается NULL
В App.Config:
<connectionStrings>
<add name="Con1" connectionString="..." providerName="System.Data.Odbc"/>
</connectionStrings>
В моем коде:
static DbConnection createConnection(ConnectionStringSettings conn_str)
{
DbProviderFactory factory = DbProviderFactories.GetFactory(conn_str.ProviderName);
var retval = factory.CreateConnection();
retval.ConnectionString = conn_str.ConnectionString;
return retval;
}
Это создает для меня переменное соединения, conn
и отлично работает (Я могу открыть соединение, запросить его и т. Д.), Поэтому я знаю, что я ссылаюсь на правильные библиотеки.
Однако позже, мне нужно, чтобы получить завод снова и использование:
DbProviderFactory factory = DbProviderFactories.GetFactory(conn);
Но, по какой-то причине, я вернусь, что factory = null
.
Я делаю что-то совершенно неправильно?
Я не уверен, что понимаю. Как я уже сказал в вопросе, строка подключения имеет имя поставщика 'providerName =" System.Data.Odbc "и эта строка может создать соединение (которое я может открыть/запросить) ... Я просто не могу использовать соединение, чтобы вернуть фабрику ... Вы говорите что-то другое? –
Я обновил свой ответ. Я не знаю, какова ваша проблема на самом деле. Этот код работает отлично на моей машине. –