Не удалось найти запрошенный поставщик данных .Net Framework - SQLite - PullRequest
19 голосов
/ 15 марта 2012

Я думал, что sqlite - это просто, но мне трудно.Я просто хочу создать приложение, в котором я могу подключиться к базе данных sqlite, используя классы данных сущности ado.net.

У меня возникла эта проблема при тестировании приложения на виртуальной машине под управлением Windows XP.приложение отлично работает на моем текущем компьютере, а также на моем ноутбуке, когда я их развертываю.

Вот что происходит на виртуальной машине:

  • Приложение может запускаться.
  • Приложение может взаимодействовать с базой данных с помощью System.Data..SQLite
  • Приложению не удается подключиться к базе данных с использованием моделей данных ADO.NET Entity

, когда я пытаюсь подключиться, я получаю следующееисключение:

enter image description here

enter image description here

Я знаю, что есть много постов, в которых говорится об этом, и большинство из них говорят, что вам нужноскачайте .NET провайдера для Sqlite.

Я уже установил sqlite-netFx40-setup-bundle-x86-2010-1.0.79.0.exe и получаю то же самоепроблема.Что мне делать?


Редактировать

Мне удалось установить соединение, добавив:

<system.data>
 <DbProviderFactories>
  <remove invariant="System.Data.SQLite"/>
  <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
  type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

в мой app.configфайл.

Проблема в том, что теперь я не могу ни выбирать данные, ни вставлять записи в базу данных.Исключение, которое я получаю, когда пытаюсь вставить новую запись сейчас:

После вызова метода 'GetService' для экземпляра поставщика хранилища типа 'System.Data.SQLite.SQLiteFactory' было возвращено значение NULL.Поставщик магазина может работать неправильно.

enter image description here

1 Ответ

32 голосов
/ 15 марта 2012

пришлось добавить:

 <system.data>
    <DbProviderFactories>
     <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data   Provider for SQLite"
      type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
     </DbProviderFactories>
  </system.data>

в файл конфигурации моего приложения.и теперь это выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
  </startup>
  <system.data>
     <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
      </DbProviderFactories>
    </system.data>
</configuration>

В месте, где был установлен sqlite, мне пришлось скопировать

enter image description here

в мой выходной каталог, где мойПрограмма exe находится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...