2010-08-13 23 views
8

Tengo una aplicación de winforms que usa sqlite para almacenar datos. En lugar de enviar una base de datos en blanco, ¿puedo usar scripts para crear las tablas la primera vez que el usuario usa la aplicación? ¿Puedes señalar un ejemplo de C#?Creando base de datos Sqlite Embedded desde la aplicación

Actualización: Deseo evitar el envío de una base de datos en blanco. Entonces, si un usuario instala la aplicación solo para 1 usuario, solo su perfil obtiene una copia. El perfil de todos los usuarios obtiene la base de datos si la instalación es para todos los usuarios.

+0

También podría crear las tablas necesarias y enviar el archivo de base de datos vacía con la aplicación. –

Respuesta

19

Sí, esto es posible:

  • Cuando la aplicación se ejecuta en primer lugar, comprobar si existe el archivo de base de datos.
  • Si no lo hace, ábralo con la opción Sqlite FailIfMissing=False. Esto creará un nuevo archivo.
  • Luego, use comandos SQL como CREATE TABLE ... para crear la estructura de esquema.

Para la segunda etapa, que use el código que se ve algo como esto:

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

Hace referencia a System.Data.SQLite versión 1.0.94.0, DbConnectionStringBuilder no se puede resolver. –

+1

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

Cuestiones relacionadas