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

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