Sqlite简单介绍:
1. 是一种关系型数据库,它是open source, 不是open contribute的,也就是说所有人都可以拿到source code,但是只有相关的人员可以上传code,下载到本地之后,可以修改code自己是使用,但是不能上传,有专门的人维护,就是质量有保证。
2. 另外一个特色是,区别于其他的关系型数据库,它是跟应用程序一起的,不需要独立运行的服务器,只是对当前硬盘上的文件进行读写,这一点也是它迅速推广的原因。
3. 用ANSI-C写的,有两个文件.c和.h。可以跨平台,不管windows,IOS或者Andorid都支持,同时也已经是手机的自带组件。
C#中使用Sqlite:
那我们使用下面几步就可以简单的建立一个C#程序并且使用Sqlite建立数据库。
1. 利用VisualStudio建立一个windows form的工程:
2. 利用NuGet去安装Sqlite的ADO.NET provider,利用该provider就可以连接(打开文件,关闭文件等)sqlite数据库。
首先右键工程,打开Nuget Manager
在search中搜索sqlite,则会列出很多关于sqlite的packages,选择System.Data.Sqlite包(为了兼容.NET CORE, 开发了新的Mircosoft.Data.Sqlite,API 基本相同,并实现了跨平台),进行安装
3. 建一个新类
4. 在新建类里面添加新的方法
SQLiteConnection con;
SQLiteCommand cmd;
SQLiteDataReader dr;
public void CreateDatabaseAndTable()
{
if (!File.Exists("MyDatabase.sqlite"))
{
SQLiteConnection.CreateFile("MyDatabase.sqlite");
string sql = @"CREATE TABLE Student(
ID INTEGER PRIMARY KEY AUTOINCREMENT ,
FirstName TEXT NOT NULL,
LastName TEXT NOT NULL
);";
con = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
con.Open();
cmd = new SQLiteCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
}
else
{
con = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
}
}
CreateDatabaseAndTable()这个函数里,先进行了判断,是否文件MyDatabase.sqlite存在,如果不存在就先创建文件,并创建了新表Student,如果文件已经存在则直接打开文件。
4. 如果你想添加数据或者查询数据,可以参考如果code.
public void AddData(string name,string lastname)
{
cmd = new SQLiteCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "insert into Student(FirstName,LastName) values ('" + name + "','" + lastname + "')";
cmd.ExecuteNonQuery();
con.Close();
}
public void SelectData()
{
int counter = 0;
cmd = new SQLiteCommand("Select *From Student", con);
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
counter++;
Console.WriteLine(dr[0] + " : " + dr[1]+" "+dr[2]);
}
con.Close();
}
5. 在Main函数中,你可以进行如下的调用,那么例子就完成了。
class Program
{
static void Main(string[] args)
{
Sample samp = new Sample();
samp.CreateDatabaseAndTable();
Console.Write("Add Name :");
string name = Console.ReadLine();
Console.Write("Add LastName :");
string lastname = Console.ReadLine();
samp.AddData(name,lastname);
Console.WriteLine("*************************");
samp.SelectData();
Console.ReadLine();
}
}
如果你想用Micirosoft.Data.Sqlite packages,你可以在网站实例中查找Microsoft.Data.Sqlite(如下图).有很多相关的例子