如何确保只创建一次数据库文件?

时间:2013-07-16 14:48:57

标签: c# database sqlite

我刚刚开始构建一个Windows窗体应用程序。登录后,将执行以下代码。但问题是,每次用户登录表时都会被覆盖。怎么做才能只创建一次数据库表?

   SQLiteConnection sqlite_conn;
   SQLiteCommand sqlite_cmd;
   SQLiteDataReader sqlite_datareader;

   // create a new database connection:
   sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");

   sqlite_conn.Open(); 

   sqlite_cmd = sqlite_conn.CreateCommand(); 

   sqlite_cmd.CommandText = "CREATE TABLE test (id integer primary key, text varchar(100));";

   sqlite_cmd.ExecuteNonQuery();

或者有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

你需要像这样改变你的代码

  sqlite_cmd.CommandText = "create table if not exists test (id integer primary key, text varchar(100));";

仅当表格尚不存在时才会创建表格。

答案 1 :(得分:0)

首先检查表是否存在 如果表不存在则创建表

IF OBJECT_ID('test', 'U') IS NULL 
BEGIN 
   CREATE TABLE test (id integer primary key, text varchar(100));
END

适用于SQL lite

create table if not exists test (id integer primary key, text varchar(100))

答案 2 :(得分:0)

你的方向错了。我真的不了解你的设计,但这是一个演练,如何创建一个使用SqlLite的winform应用程序:C# Tutorial 36: How to use and connect Sqlite in a C# project

尝试修改您的方法。不要像你提到的那样每次在代码中创建表。