2012-04-28 6 views
17

Ich erstellte eine .mdf Datei von SQL Server und legte es in eine lokale Datei. Ich führe mein Programm auf einem Computer aus, auf dem kein SQL Server installiert ist. Und auch habe ich Klassen aus dem System.Data.SqlClient Namespace (das heißt SqlConnection ..)Ist es möglich, auf eine MDF-Datenbank ohne SQL Server zuzugreifen?

Ich möchte eine Art Zugangsverbindung mit .mdf-Datei erstellen, die von SQL Server erstellt wurde? Ist es möglich ?

+0

Es gibt einige praktische Drittanbieter-Tool zur Verfügung, die Sie MDF-Datei ohne SQL Server http://www.mdfviewer.com/ –

Antwort

21

Ich glaube nicht, dass es möglich ist, mit einer MDF-Datei zu interagieren, ohne eine SQL Server-Engine zu durchlaufen. Sie würden höchstwahrscheinlich SQL Server Express installieren (was eine Option sein sollte, wenn Sie Programme für Visual Studio hinzufügen oder entfernen möchten, oder Sie können download it separately from here - this is the 2008 R2 With Tools option), Ihre Datenbank anhängen und dann von Ihrem Programm eine Verbindung zu dieser Engine herstellen.

Viele Online-Tutorials empfehlen Ihnen die Verwendung der User Instances-Funktion und AttachDbFileName. Ich schlage vor, Sie nicht gehen diese Route, da es oft zu Verwirrung führt - viele, viele Benutzer verbinden zu einer Instanz der Datenbank über Management Studio, eine andere Instanz von ihrem Programm, und dann nicht verstehen, warum man nicht t sehen Sie die Updates von der anderen gemacht. Die User Instances Features sind veraltet und ich bevorzuge es sehr, eine Datenbank ordnungsgemäß an die Instanz anzuhängen.

In SQL Server 2012 können Sie die neue Laufzeit (you want either the x86 or x64 SqlLocalDB.MSI file from here) herunterladen, die diesen Prozess viel einfacher macht, da es eine wartungsfreie On-Demand-SQL Server-Engine ist. Beachten Sie jedoch, dass Ihre Datenbank auf das neue 11.0-Dateiformat aktualisiert wird. Dies bedeutet, dass Sie keine Verbindung zu einer älteren Version (2008, 2008 R2 usw.) trennen/anhängen oder sichern/wiederherstellen können. Ich habe viele troubleshooting techniques for new users starting with SqlLocalDb here hinzugefügt.

+0

vielen Dank für Ihre Antwort Aaron anzuzeigen helfen. Es ist so nützlich – unbalanced

+0

eigentlich sagen Sie zu installieren https://www.microsoft.com/en-us/download/details.aspx?id=23650 das ist mit Management-Studio und ist von 240MB gibt es keine Lösung zur Verfügung, die wir donot Installieren Sie Management Studio und installieren Sie nur seine Dienste oder Instanzen, während Sie einfach weniger Größe als diese implementieren –

2

Sie benötigen SQL, um eine Verbindung zum MDF herzustellen. Sie können es in ein SDF konvertieren und die Kompaktversion laden (kostenlos). http://msdn.microsoft.com/en-us/data/ff687142

+1

Beachten Sie, dass die Konvertierung in Compact nur funktioniert, wenn Ihre Datenbank keine Features oder Syntax verwendet, die nicht in Compact Edition unterstützt werden. Wäre nicht Express (auch kostenlos) eine sicherere Empfehlung? Es ist nicht so "eingebettet", aber es ist sehr wahrscheinlich weniger problematisch. –

+0

und ist es möglich, sql Klassen zu verwenden? Oder ich habe oledbd Klassen in C# zu verwenden? .. – unbalanced

+0

Mit Express sollten Sie nicht sqloledb verwenden müssen.Ich kenne mich in der Compact Edition nicht aus, um genau zu wissen, wie sich die Interaktion dort unterscheidet. Ich weiß nur, dass das Dateiformat und die Features sehr unterschiedlich sind. –

5

Sie können versuchen, OrcaMDF zu verwenden, das ein Open-Source-Projekt ist.

Was ist OrcaMDF?

Ein C# Parser für MDF-Dateien. Ermöglicht Ihnen, Tabellen, Metadaten und Indizes aus MDF-Dateien zu lesen, ohne dass sie an eine laufende SQL Serverinstanz angehängt sind.

(diese Beschreibung stammt von der Projektseite).

Author's blog

Verwandte Themen