如何避免生成Sqlite DB每次启动程序而不是一次

时间:2015-09-03 23:33:09

标签: c# winforms sqlite

我使用此代码生成sqlite数据库..

 private static SQLiteConnection GenData()
    {
        SQLiteConnection.CreateFile("MyDatabase.sqlite");
        SQLiteConnection m_dbConnection;
        m_dbConnection  new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
        m_dbConnection.Open();
        string createTableQuery = @"CREATE TABLE IF NOT EXISTS [MyTable] (
                      [ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                      [Value] VARCHAR(2048)  NULL
                      )";
        SQLiteCommand command = new SQLiteCommand(createTableQuery, m_dbConnection);
        command.ExecuteNonQuery();
        return m_dbConnection;
    }

我在按钮单击中使用它来插入数据和创建数据库

   private void insertintoDB(string Textbox)
    {

        SQLiteConnection m_dbConnection = GenData();
        string sql = "insert into MyTable (Value) values ('" + Textbox + "')";
        SQLiteCommand commmand = new SQLiteCommand(sql, m_dbConnection);
        commmand.ExecuteNonQuery();
    }

insertintoDB(textbox1.text) 并且我将GenData()放入加载event但是每次我使用应用程序时..它会自动生成数据库,我只需要它一次

2 个答案:

答案 0 :(得分:1)

在创建数据库的位置执行简单的文件检查(通常这是App_Data,但您可能希望使用适当的环境变量指定其他位置)。

然后创建一个条件语句来执行你" CreateFile"仅当文件不存在时命令。

答案 1 :(得分:1)

只需在创建文件

之前添加if语句
private static SQLiteConnection GenData()
{
    if (!System.IO.File.Exists("MyDatabase.sqlite"))
        SQLiteConnection.CreateFile("MyDatabase.sqlite");
    .....

这将在创建文件之前检查文件是否存在。