Frage

Ich mache dieses kleine Utility-Programm (Windows Forms), und es wäre ein wenig Daten auf die Festplatte speichern müssen. Im DB-Bedingungen wäre es etwa ein Tisch sein, nicht mehr als etwa paar tausend Zeilen, jede Zeile kleiner ist dann 1 KB groß.

Was würden Sie nutzen?

Hinzugefügt: zu sagen vergessen - es wäre wirklich nett, wenn das ganze Programm nur eine Exe-Datei sein würde (plus die Datendatei, natürlich). So würde ich lieber etwas, das in .NET integriert ist.

War es hilfreich?

Lösung

SQLite .Es ist klein und haben großer Wrapper für .Net.

Andere Tipps

oder Theres esent, die in der Datenbank aufgebaut, die in jeder Kopie von Windows vorhanden ist. Lesen Sie hier: http : //ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx

Wenn Sie mutig fühlen, ich habe ein einfaches Dokument zusammengestellt db PieDb (wie in ' einfach wie).

Sie können SQL Server Compact Edition (die mit Visual Studio) verwenden oder SQLite .

Es gibt viele andere, aber diese sind die häufigsten.

Ich bin ein großer Fan von SQLite, weil sie winzig ist, einfach und schnell. Es ist ein wunderbarer ADO.NET-Provider für sie, die die Entity Framework unterstützt.

Wenn Sie eine einzelne Tabelle reden, kann ich nicht ganz verstehen, warum Sie das Gefühl HAVE eine relationale Datenbank verwenden, um Ihre Ziele zu erreichen. Was ist mit einer einzigen Datei?

Natürlich, je nach dem Grund, den Sie speichern Informationen benötigen, und die Art und Weise die Daten bezogen ist, kann es ein Grund für Sie eine db benötigen. Aber Sie sollten prüfen, ob ein DB ist eigentlich das, was Sie in diesem Fall benötigen.

Eine relationale Datenbank sollte der Defacto-Standard nicht zum Speichern von Daten. Es gibt viele viele Alternativen, die Sie vor der Auswahl des RDBMS in Betracht ziehen sollten.

Siehe mcintyre321 der Post zum Beispiel.

Wenn Sie Satz ein eingebettetes DB auf verwenden, dann SQL Server Compact Edition ist wahrscheinlich die beste Wahl von SQLite als an zweiter Stelle gefolgt.

Wenn Sie eine Tabelle sprechen, klingt es wie ein eingebetteter DB Overkill sein könnte und Sie besser durch eine einfache Textdatei bedient werden kann.

Sie können eine Reihe von Ihrer Klasse erstellen, markieren Sie [Serializable] und verwenden Sie einfach die integrierten in serialize / deserialize Methoden für die Persistenz.

Ich zweite Stimme für SQLite. SQL Server CE viel zu schwer für alle Embedded-Zwecke ist, wenn Sie eine einfache Synchronisierung mit einer zentralen Datenbank benötigen -. Dann fantastisch es ist

.NET-Port von SQLite ist unter http://code.google.com/ p / csharp-sqlite / . Es ist reine .NET so kann man ILMerge in eine einzige EXE

Für etwas, das klein und einfach ich wahrscheinlich mit XML gehen würde und nicht eine Datenbank verwenden. Wenn Sie abstrakt der CRUD Code, den Sie später die Datenebene Teil des Codes ändern können, so dass es eine Datenbank verwendet, wenn die Daten in der Größe und Komplexität wächst.

Sobald suchte ich gleiches Problem. Von allen möglichen Kandidaten zwei sah gut aus. Dies sind SQLite und Firebird (firebirdsql.org). Aber der Feuervogel hatte ein paar mehr Features als SQLite.

UPD: Hier eine interessante Informationen über Firebird + Dotnet http://www.firebirdsql.org/dotnetfirebird/embedded/index.html

Berkeley DB auch eine gute Wahl für Embedded-Datenbank ist. Und es gibt eine Bibliothek , die eine .NET 2.0-Schnittstelle für die es bietet.

Wenn es nicht eine SQL-kompatible Datenbank sein muss, dann würde ich auch bei Db4o aussehen. Db4o ist eine Objektdatenbank für Java und .NET. Die .NET-Version ist in C # vollständig geschrieben.

I zweite SQL Lite oder eine einfache XML-Datei mit deflate writer Größe zu minimieren. Schnelle und nicht so schmutzig.

Versuchen Sie dieses: https://github.com/mdsoftware/mData . Keine 3. Parteien, alle Quellen enthalten, einige nette Sachen wie Lisp-ähnliche Datenverarbeitung und Ausdruck Compiler ebenfalls enthalten. Ich habe versucht, etwas wirklich einfach, aber funktionell zu machen.

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