C#使用System.Data.SQLite操作SQLite

    xiaoxiao2022-06-24  23

    使用System.Data.SQLite 下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

    得到System.Data.SQLite.dll添加到工程引用;

     建表,插入操作

    C#代码   static void Main(string[] args)           {               SQLiteConnection conn = null;                  string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";               conn = new SQLiteConnection(dbPath);//创建数据库实例,指定文件位置               conn.Open();//打开数据库,若文件不存在会自动创建                  string sql = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";//建表语句               SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conn);               cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表                  SQLiteCommand cmdInsert = new SQLiteCommand(conn);               cmdInsert.CommandText = "INSERT INTO student VALUES(1, '小红', '男')";//插入几条数据               cmdInsert.ExecuteNonQuery();               cmdInsert.CommandText = "INSERT INTO student VALUES(2, '小李', '女')";               cmdInsert.ExecuteNonQuery();               cmdInsert.CommandText = "INSERT INTO student VALUES(3, '小明', '男')";               cmdInsert.ExecuteNonQuery();                  conn.Close();           }  

       可以使用SQLite Database Browser来查看数据:

    下载地址:http://sourceforge.net/projects/sqlitebrowser/

     

       建表成功。

    当然这种方法插入数据效率不高,数据量大的话要使用下面这种方法:

    C#代码   static void Main(string[] args)          {              string dbPath = Environment.CurrentDirectory + "/test.db";//指定数据库路径                            using(SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))//创建连接              {                  conn.Open();//打开连接                  using(SQLiteTransaction tran = conn.BeginTransaction())//实例化一个事务                  {                      for (int i = 0; i < 100000; i++ )                      {                          SQLiteCommand cmd = new SQLiteCommand(conn);//实例化SQL命令                          cmd.Transaction = tran;                          cmd.CommandText = "insert into student values(@id, @name, @sex)";//设置带参SQL语句                          cmd.Parameters.AddRange(new[] {//添加参数                              new SQLiteParameter("@id", i),                              new SQLiteParameter("@name""中国人"),                              new SQLiteParameter("@sex""男")                          });                          cmd.ExecuteNonQuery();//执行查询                      }                      tran.Commit();//提交                  }              }          }  

     

    插入这样的十万条数据只需要5秒左右。

     

    读取数据:

     

    C#代码   static void Main(string[] args)           {               SQLiteConnection conn = null;                  string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";               conn = new SQLiteConnection(dbPath);//创建数据库实例,指定文件位置               conn.Open();//打开数据库,若文件不存在会自动创建                  string sql = "select * from student";               SQLiteCommand cmdQ = new SQLiteCommand(sql, conn);                  SQLiteDataReader reader = cmdQ.ExecuteReader();                  while (reader.Read())               {                   Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetString(2));               }               conn.Close();                  Console.ReadKey();           }  

     

     

     数据读取成功

    转自:C#使用System.Data.SQLite操作SQLite - 柚柚控 - ITeye技术网站 http://hzy3774.iteye.com/blog/1691932

    转载请注明原文地址: https://ju.6miu.com/read-1123782.html

    最新回复(0)