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

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

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

建表,插入操作

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

C#使用System.Data.SQLite操作SQLite  可以使用SQLite Database Browser来查看数据:

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

C#使用System.Data.SQLite操作SQLite   C#使用System.Data.SQLite操作SQLite  建表成功。

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

  1. static void Main(string[] args)
  2. {
  3. string dbPath = Environment.CurrentDirectory + "/test.db";//指定数据库路径
  4. using(SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))//创建连接
  5. {
  6. conn.Open();//打开连接
  7. using(SQLiteTransaction tran = conn.BeginTransaction())//实例化一个事务
  8. {
  9. for (int i = 0; i < 100000; i++ )
  10. {
  11. SQLiteCommand cmd = new SQLiteCommand(conn);//实例化SQL命令
  12. cmd.Transaction = tran;
  13. cmd.CommandText = "insert into student values(@id, @name, @sex)";//设置带参SQL语句
  14. cmd.Parameters.AddRange(new[] {//添加参数
  15. new SQLiteParameter("@id", i),
  16. new SQLiteParameter("@name", "中国人"),
  17. new SQLiteParameter("@sex", "男")
  18. });
  19. cmd.ExecuteNonQuery();//执行查询
  20. }
  21. tran.Commit();//提交
  22. }
  23. }
  24. }

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

读取数据:

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

C#使用System.Data.SQLite操作SQLite  数据读取成功。

上一篇:QT写TXT文件


下一篇:(poj 3662) Telephone Lines 最短路+二分