我刚刚开始构建一个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();
或者有更好的方法吗?
答案 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
尝试修改您的方法。不要像你提到的那样每次在代码中创建表。