8

I have a winforms app that uses sqlite to store data. Instead of shipping a blank database, can I use scripts to create the tables the first time the user uses the app? Can you point to a C# example?

Update: I want to avoid shipping a blank database. So if a user install the app for 1 user only, only his profile gets a copy. All users profile gets the database if the install is for all users.

1
  • You could also create the tables you need and ship the empty database file with the app. Commented Aug 13, 2010 at 2:15

1 Answer 1

19

Yes, this is possible:

  • When the application first runs, check if the database file exists.
  • If it doesn’t, open it with the Sqlite option FailIfMissing=False. This will create a new file.
  • Then, use SQL commands like CREATE TABLE ... to create the schema structure.

For the second step, I use code that looks something like this:

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;
}
Sign up to request clarification or add additional context in comments.

2 Comments

Referencing System.Data.SQLite version 1.0.94.0, DbConnectionStringBuilder is not resolvable.
@B.ClayShannon : System.Data.Common.DbConnectionStringBuilder

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.