Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
207 views
in Technique[技术] by (71.8m points)

c# - Creating Sqlite Embedded database from application

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

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

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...