2010-08-13 12 views
8

Ho un'app winforms che utilizza sqlite per archiviare i dati. Invece di spedire un database vuoto, posso utilizzare gli script per creare le tabelle la prima volta che l'utente usa l'app? Puoi indicare un esempio in C#?Creazione di database Sqlite Embedded dall'applicazione

Aggiornamento: voglio evitare di spedire un database vuoto. Quindi, se un utente installa l'app solo per 1 utente, solo il suo profilo ottiene una copia. Il profilo di tutti gli utenti ottiene il database se l'installazione è per tutti gli utenti.

+0

Si potrebbe anche creare le tabelle necessarie e spedire il file di database vuoto con l'applicazione. –

risposta

19

Sì, questo è possibile:

  • Quando l'applicazione viene eseguito prima, controllare se è presente il file di database.
  • In caso contrario, aprirlo con l'opzione Sqlite FailIfMissing=False. Questo creerà un nuovo file.
  • Quindi, utilizzare comandi SQL come CREATE TABLE ... per creare la struttura dello schema.

Per la seconda fase, io uso il codice che assomigli a questo:

public DbConnection CreateConnectionForSchemaCreation(string fileName) 
{ 
    var conn = new SQLiteConnection(); 
    conn.ConnectionString = new DbConnectionStringBuilder() 
    { 
     {"Data Source", fileName}, 
     {"Version", "3"}, 
     {"FailIfMissing", "False"}, 
    }.ConnectionString; 
    conn.Open(); 
    return conn; 
} 
+0

Riferimento a System.Data.SQLite versione 1.0.94.0, DbConnectionStringBuilder non è risolvibile. –

+1

@ B.ClayShannon: System.Data.Common.DbConnectionStringBuilder –

Problemi correlati