Frage

Diese Codezeile

DbProviderFactory factory = DbProviderFactories.GetFactory("Microsoft.SqlServerCe.Client");

wirft diese Ausnahme

  

System.Configuration.ConfigurationErrorsException:   Kann das registriert finden oder laden   .NET Framework-Datenanbieter.

Obwohl meine machine.config-Datei enthält den folgenden Abschnitt

<system.data>
  <DbProviderFactories>
    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add name="SQL Server CE Data Provider" invariant="Microsoft.SqlServerCe.Client" description=".NET Framework Data Provider for Microsoft SQL Server 2005 Compact Edition" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </DbProviderFactories>
</system.data>

Bin ich etwas fehlt? Sollte ich irgendwo anders aussehen? Code wie DbProviderFactory factory = SqlCeProviderFactory.Instance funktioniert.

War es hilfreich?

Lösung

Es gibt mehr SQL Server CE installiert. Die Visual Studio Tools stellt den Server-Explorer und Design-Komponenten und den SQL Server CE-DLLs in einem Ort lokal für Visual Studio stellt. Ich brauchte die Laufzeit installieren den Datenanbieter in der Datei machine.config registriert zu erhalten.

Andere Tipps

In Visual Studio 2012, die Standard- Provider System.Data.SqlServerCe.4.0 ist.

Auf diese Weise kann me eine Fabrik mit Namen finden:

String providerName = "System.Data.SqlServerCe.4.0";

DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
if (factory == null)
   throw new Exception("Unable to locate factory for " + providerName);

DbConnection conn = factory.CreateConnection();
conn.ConnectionString = connectionString;
conn.Open();
  

Hinweis : Jeder Code wird in die Public Domain freigegeben. Keine Zuordnung erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top