Domanda

Sto facendo questo piccolo programma di utilità (Windows Form) e sarebbe bisogno di salvare un po 'di dati sul disco. In termini DB sarebbe di circa un tavolo, non più di circa paio di migliaia di righe, ogni riga essendo meno di 1 KB di dimensione.

Cosa vorresti usare?

Aggiunto: Hai dimenticato di dire - sarebbe veramente pulito se l'intero programma sarebbe solo un file exe (più il file di dati, ovviamente). Così io preferirei qualcosa che è costruito in .NET.

È stato utile?

Soluzione

SQLite .Si è piccolo e hanno grande wrapper per .Net.

Altri suggerimenti

In alternativa Theres ESENT, il costruito nel database che esiste in ogni copia di Windows. Leggi qui: http : //ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx

Se ti senti coraggioso, ho messo insieme un semplice documento db PieDb (come in ' facile come).

È possibile utilizzare SQL Server Compact Edition (fornito con Visual Studio), o SQLite .

Ci sono molti altri, ma questi sono i più comuni.

Sono un grande fan di SQLite, perché è molto piccolo, semplice e veloce. C'è un fornitore di ADO.NET per esso, che sostiene l'Entity Framework.

Se si sta parlando di una singola tabella, non riesco proprio a capire il motivo per cui si sente il bisogno di utilizzare un database relazionale per raggiungere i tuoi obiettivi. Che dire di un singolo file?

Naturalmente, a seconda del motivo è necessario memorizzare le informazioni, e il modo in cui i dati sono legato, non ci può essere un motivo per voi di bisogno di un db. Ma si dovrebbe considerare se un DB è in realtà ciò che è necessario in questo caso.

Un database relazionale non dovrebbe essere lo standard de facto per la memorizzazione dei dati. Ci sono molte molte alternative da prendere in considerazione prima di selezionare il RDBMS.

Si veda il post di mcintyre321 per esempio.

Se si sta insieme utilizzando un DB incorporato, quindi SQL Server Compact Edition è probabilmente la soluzione migliore seguito da SQLite come un secondo vicino.

Se stai parlando un tavolo, suona come un DB incorporato potrebbe essere eccessivo e si potrebbe essere meglio servita da un semplice file di testo.

È possibile creare un array di tua classe, segnare [Serializable] e basta usare le serializzare / deserializzare metodi built-in per la persistenza.

I secondi voto per SQLite. SQL Server CE è troppo pesante per qualsiasi scopo incorporati a meno che non hai bisogno di una facile sincronizzazione con un database centrale -. Poi è fantastico

il porto .NET di SQLite è a http://code.google.com/ p / csharp-sqlite / . E 'pura .NET così si potrebbe ILMerge in un unico exe

Per qualcosa che piccolo e semplice io probabilmente andare con XML e non utilizzare un database. Se estratto il codice CRUD è possibile modificare in seguito la parte di livello dati del codice in modo che utilizza un database quando il dato cresce in dimensioni e complessità.

Una volta che ho studiato lo stesso problema. Da tutti i possibili candidati a due sembrava buono. Si tratta di SQLite e Firebird (firebirdsql.org). Ma l'uccello di fuoco aveva alcune più funzioni rispetto SQLite.

UPD: Ecco un interessante informazioni Firebird + dotnet http://www.firebirdsql.org/dotnetfirebird/embedded/index.html

Berkeley DB è anche una buona scelta per database incorporato. E c'è un libreria che fornisce un'interfaccia .NET 2.0 per esso.

Se non deve essere un database SQL-compatibile, quindi mi piacerebbe anche guardare db4o. Db4o è un database ad oggetti per Java e .NET. La versione di .NET è completamente scritto in C #.

I secondi SQL Lite o un semplice file XML con lo scrittore deflate per ridurre le dimensioni. Veloce e non così sporco.

Prova questo: https://github.com/mdsoftware/mData . Nessuna delle parti 3rd, tutte le fonti inclusi, alcune cose belle come Lisp-like elaborazione dei dati e compilatore di espressione incluso anche. Ho cercato di fare qualcosa di molto semplice ma funzionale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top