2009-03-08 14 views
6

Wie erstelle ich eine DB-Datei in C#? Ein Freund sagte mir, es sei in der Toolbox und nicht um SQLite zu verwenden. Ich sehe nichts, was es sein könnte oder wie es heißt. Google hat nicht geholfen :(C# -Datenbank in einer Datei

Antwort

3

Es gibt keinen dateibasierten Datenbankanbieter, der in C# oder das .NET Framework integriert ist. Es gibt natürlich bereits vorhandene Connectors zur Verwendung von SQL Server (einschließlich SQL Express), aber wenn Sie eine benötigen voll funktionsfähige RDBMS, die dateibasierte, müssen Sie so etwas wie SQLite oder Firebird (auch ein Fan von VistaDB, nicht frei oder Open-Source, aber sehr solide und ziemlich erschwinglich) verwenden.

+1

Was ist mit XML - nicht dateibasiert? – cdonner

+0

@cdonner XML ist keine Datenbank nach den gebräuchlichsten Definitionen. (Obwohl es natürlich formal sein kann.) –

-7

Sie irren. die Datenbanken werden nicht entwickelt in C#: Datenbanken werden unter Verwendung eines Datenbanksystems wie Oracle, MS SQL Server, MySQL und vielen anderen erstellt

Sobald Sie bu Wenn Sie eine Datenbank verwenden, die einen der oben genannten Provider verwendet, können Sie dann mit der von Ihnen gewählten Programmiersprache (in Ihrem Fall C#) Aktionen auf der Datenbank ausführen, um Daten zu erhalten und Daten in diese Datenbank zu übernehmen.

+0

Das stimmt nicht unbedingt, unbedingt. Produkte wie VistaDB sind voll funktionsfähige RDBMS in C# geschrieben. –

+0

@Rex: Im Zusammenhang mit der Frage ist es eine ziemlich genaue Aussage. Er untersucht, wie eine Datenbank in C# und nicht in einem RDBMS erstellt wird. – TheTXI

0

Wenn Sie Visual Studio oder Web Developer Express verwenden, gibt es tatsächlich Möglichkeiten zum einfachen Erstellen einer MS SQLExpress-Datenbank. Gehen Sie einfach zu Neues Element hinzufügen ... und es sollte einer der verfügbaren Dateitypen sein.

Denken Sie daran, dass Sie entweder Microsoft SQL Express Edition (kostenlos, wie in Bier!) Oder Microsoft SQL (sehr unfrei !, in jeder Hinsicht) installiert haben müssen. Wenn Sie dies nicht getan haben, können Sie die Datenbankdatei nicht so einfach erstellen. Wenn Sie es noch haben, können Sie es here bekommen.

Wie andere Beantworter erwähnt haben, ist dies strenggenommen KEINE C# -Funktion. MS SQL und seine Derivate sind Datenbankanwendungen, ähnlich wie Oracle, MySQL oder PostgreSQL. Es ist nur so, dass Microsoft Visual Studio die Verwendung des Microsoft-Datenbankprodukts standardmäßig sehr einfach macht. Durch die Unterscheidung zwischen C#, Visual Studio und anderen Datenbankprogrammen erhalten Sie wahrscheinlich bessere Antworten, schneller, ganz gleich, wo Sie danach fragen. :)

9

Könnte es sein ...

SQL Server Compact Edition - Ein leichter, Datenbank-Engine in-Prozess auf den Geräte und Desktop-PC läuft und ist auf lokale Datenspeicherung ausgerichtet. Compact Edition enthält eine Teilmenge der SQL Server 2005-Datentypen und teilt gemeinsame Elemente der Transact-SQL (T-SQL) -Sprache mit den Datendienst-Engines.

1

Im Menü Neues Element hinzufügen: "Service-basierte Datenbank" oder "Sql Server-Datenbank", wenn es eine asp.net-Anwendung ist. Ich bin sicher, dein Freund meinte es als "erstelle eine SQL Express DB-Datei in Visual Studio".

Das heißt, wenn Sie eine leere Datenbank mit Tabellen, die entsprechen aC# Modell füllen wollten, können Sie ein linq2sql Modell erstellen können, und verwenden Sie seine Create, dass für Sie zu tun :)

Sie möchten vielleicht um dies zu überprüfen http://quickstarts.asp.net/QuickStartv20/aspnet/doc/data/vwd.aspx (Visual Web Developer Link, aber es gilt). http://www.databasejournal.com/features/mssql/article.php/3704171/SQL-Server-2005-Express-Edition---Part-8---XCopy-Deployment.htm

0

Jede Datenbank ein file system hat als wahrscheinlich benutzerdefinierte mehr in einigen Binärformat und:

Für eine vollständige/in ausführlicher Erklärung, wie mit einer halbdateibasierten Ansatz Prüfung und seine Grenzen SQL Express kann verwendet werden, verwendet eine cache, um den Fluss der Lebensdauer der Datenbank (en) zu steuern.

Wenn Sie eine database system erstellen, benötigen Sie einen bestimmten Cache-Typ, weil Sie nur aus der Datei lesen möchten, wenn der Cache sie bereits freigegeben hat.

Wenn Sie 1000 Clients haben, tippen Sie auf die gleiche Datenbank, Sie wollen sicherlich nicht read/write für die Datei für jede Clientanforderung, so dass Sie eine Warteschlange von Clients verwalten und gegen den Cache ausführen möchten, so dass der Cache weiß, die db nicht zu veröffentlichen, nachdem ihre Zeitspanne für die Lebensdauer erreicht ist, um die Zeitspanne zu aktualisieren, so dass die Datei nicht neu geladen werden muss, wenn sie wieder in die Warteschlange gestellt wird, bis die auf das db-Objekt verweisende Warteschlange leer ist.

Erstellen eines gut gestalteten Caches, das von allen RDBMS verwendet wird, so dass doppelte Objekte nicht erstellt werden und Dateien nicht neu geladen werden, wenn sie nicht benötigt werden.

0

Sie können

FileDB verwenden - Eine C# Datenbank zu speichern Dateien

http://filedb.codeplex.com

Es ist ein MVC Beispiel in der Quelle, die Sie Dateien und auch Drag hat hochladen und Drop-Unterstützung.

Es speichert es dann in nur einer Datei an einem von Ihnen angegebenen Speicherort.

So:

private string pathDB = @"C:\CMS-MVC\Parts\FileManager\filedb-19055\trunk\MvcTest\Data\MvcData.dat"; 

Dass eine Datei alle Dateien in diesem einen "Container" speichert.

+0

Problem mit diesem ist, dass, obwohl Sie eine Datei speichern say hi.txt Sie können es nicht die Datei zurück mit dem Namen hi.txt können Sie nur nach einer ID suchen zurückgegeben, wenn die Datei gespeichert wurde – Samuel

0

Vielleicht könnten Sie versuchen, Microsoft LocalDB. Es ist dateibasiert, verwendet jedoch eine SQLExpress-Installation auf niedriger Ebene, um es zu hosten.

Verwandte Themen