Sqlite: 在C#程序中的應用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章