目录
一、数据库的创建
二、添加数据表
三、删除数据表
四、更改表名
五、添加列
SQLite 是文件型的数据库,创建很简单,直接指定一个数据库文件名,后缀名不一定非得是“.sqlite”,后缀随便命名为".db"也成。运行 SQLiteConnection.open 就会创建个空的指定名字的数据库文件。由于它是文件型的,我们也可以直接用 System.IO.File.Create() 来创建一个空的文件。
using System.Data.SQLite;
void CreateDB()//创建数据库
{
string StartupPath = Application.StartupPath;
StartupPath += "\\数据.db";
string connectString = "data source = " + StartupPath;
SQLiteConnection dbConnect = new SQLiteConnection(connectString);
dbConnect.Open();
dbConnect.Close();
}
这时在运行目录下看到创建的数据库文件了。
使用SQLiteConnection.CreateFile也可以创建数据表,但如果目标文件目录下存在同名文件,会对旧的文件进行覆盖,造成旧数据丢失。而使用SQLiteConnection.open创建数据表,如果目标文件夹下有同名文件会直接打开,如果没有,才会自动创建空白文件。
using System.Data.SQLite;
void CreateDB()//创建数据库
{
string StartupPath = Application.StartupPath;
StartupPath += "\\数据.db";
SQLiteConnection.CreateFile(StartupPath);
}
使用Sqlite语句 CREATE TABLE,基本语法如下:
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
…
columnN datatype,
);
示例:
using System.Data.SQLite;
void CreateTB()//创建数据表
{
string StartupPath = Application.StartupPath;
StartupPath += "\\数据.db";
string connectString = "data source = " + StartupPath;
SQLiteConnection dbConnect = new SQLiteConnection(connectString);
if (dbConnect.State != System.Data.ConnectionState.Open)
{
dbConnect.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = dbConnect;
cmd.CommandText = "CREATE TABLE IF NOT EXISTS table1(Time TEXT,Temp INTEGER)";
cmd.ExecuteNonQuery();
MessageBox.Show("建表完成");
}
dbConnect.Close();
}
在CREATE TABLE后添加IF NOT EXISTS是为了防止数据库中存在同名数据表而报错。
使用Sqlite语句DROP TABLE ,和添加数据表相似,基本语法如下:
DROP TABLE database_name.table_name;
示例:
cmd.CommandText = "DROP TABLE IF EXISTS table1";
cmd.ExecuteNonQuery();
同样的在DROP TABLE后使用IF EXISTS是确认table1数据表存在防止出错。
使用Sqlite语句ALTER TABLE ,基本语法:
ALTER TABLE database_name.table_name RENAME TO new_table_name;
示例:
cmd.CommandText = "ALTER TABLE table1 RENAME TO table2";
cmd.ExecuteNonQuery();
为防止数据库中没有table1或者已经存在table2,可以使用SELECT while语句进行判断,
示例:
cmd.CommandText = "SELECT COUNT(*) FROM sqlite_master where type='table' and name='table1'";
if (0 == Convert.ToInt32(cmd.ExecuteScalar()))
{
//table1 does not exist.
}
else
{
//table1 does exist.
}
ALTER TABLE命令在Sqlite中只支持重命名表和在已有的表中添加列,添加新列语法:
ALTER TABLE database_name.table_name ADD COLUMN column_def…;
示例:
cmd.CommandText = "ALTER TABLE t1 ADD COLUMN Hum REAL";
cmd.ExecuteNonQuery();
上一篇:SQLite基本介绍 | 目录 | 下一篇: |