Verbindung mit SQL CE db mit SQLConnection

8

Ziemlich einfache Frage. Ich erstelle eine App, die Daten von einer SQL Server 2005-Instanz liest. Ich wollte einige Tests auf meinem Laptop durchführen (der nicht über SQL 2005 verfügt), also suchte ich in einer lokalen Datenbank nach den Tests.

Ich benutze VS2008, also schien die Compact Edition DB eine natürliche Wahl zu sein. Ich hatte gehofft, meine Verbindungszeichenfolge nur austauschen zu können, aber es scheint, dass es mich nur mit der SqlCeConnection und nicht SqlConnection Verbindung mit der CE-Datenbank verbinden lässt. Irgendeine Möglichkeit, Modifizierer, die ich vielleicht in der Verbindungszeichenfolge verwenden kann?

    
TygerKrash 27.04.2009, 11:32
quelle

3 Antworten

7

Es ist tatsächlich sehr gut möglich, SQL CE anstelle von ausgewachsenem SQL Server zu verwenden, indem nur Konfigurationsparameter geändert werden: Verbindungszeichenfolge ändern und wo immer möglich IDbXXX family interfaces anstelle der plattformspezifischen SqlXXX und SqlCeXXX one verwenden. Siehe DbProviderFactories .

Berücksichtigen Sie jedoch die Unterschiede in den SQL-Dialekten dieser beiden Plattformen.

    
Anton Gogolev 27.04.2009, 11:37
quelle
4

Ja, Sie können SQL Compact und / oder SQL Server verwenden, indem Sie stattdessen auf die Basisklassen verweisen. Zum Beispiel:

%Vor%

Die Verbindungszeichenfolge muss auf Ihre Datendatei für SQL Compact verweisen, zum Beispiel: "Data Source=urData.sdf;Persist Security Info=False;" . Weitere Beispiele hier .

Dieser Link erklärt, was Unterschiede zwischen diesen gibt SQL Server und SQL Compact , da es nicht identisch ist.

    
noelicus 04.12.2012 14:41
quelle
1

Alle SQL-bezogenen Objekte, die Sie für jede DB benötigen, erben vom Basis-Abstract Db ... (dh DbConnection, DbDataAdapter etc ...). Sie können daher eine Art von DatabaseManager-Klasse schreiben, die bei der Instanziierung wissen muss, ob Sie mit SQL oder Sql Ce arbeiten. Von diesem Punkt an gehen Sie dann nur noch mit den Basisklassenobjekten (DbConnection etc ..) um. Auf diese Weise müssen Sie nur jedes Mal die Instantiierung Ihrer Manager-Klasse ändern.

Ein weiterer Pluspunkt auf diese Weise ist, dass Sie, wenn Sie später zu einem anderen Anbieter wechseln, nicht viel Code ändern müssen.

    
BFree 27.04.2009 11:47
quelle