Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
202 views
Welcome To Ask or Share your Answers For Others

1 Answer

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;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...