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(如下圖).有很多相關的例子