首页 > 学院 > 开发设计 > 正文

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

2019-11-17 03:06:55
字体:
来源:转载
供稿:网友
C#使用System.Data.SQLite操作SQLite

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

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

建表,插入操作

C#代码收藏代码
  1. staticvoidMain(string[]args)
  2. {
  3. SQLiteConnectionconn=null;
  4. stringdbPath="DataSource="+Environment.CurrentDirectory+"/test.db";
  5. conn=newSQLiteConnection(dbPath);//创建数据库实例,指定文件位置
  6. conn.Open();//打开数据库,若文件不存在会自动创建
  7. stringsql="CREATETABLEIFNOTEXISTSstudent(idinteger,namevarchar(20),sexvarchar(2));";//建表语句
  8. SQLiteCommandcmdCreateTable=newSQLiteCommand(sql,conn);
  9. cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表
  10. SQLiteCommandcmdInsert=newSQLiteCommand(conn);
  11. cmdInsert.CommandText="INSERTINTOstudentVALUES(1,'小红','男')";//插入几条数据
  12. cmdInsert.ExecuteNonQuery();
  13. cmdInsert.CommandText="INSERTINTOstudentVALUES(2,'小李','女')";
  14. cmdInsert.ExecuteNonQuery();
  15. cmdInsert.CommandText="INSERTINTOstudentVALUES(3,'小明','男')";
  16. cmdInsert.ExecuteNonQuery();
  17. conn.Close();
  18. }

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

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

建表成功。

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

C#代码收藏代码
  1. staticvoidMain(string[]args)
  2. {
  3. stringdbPath=Environment.CurrentDirectory+"/test.db";//指定数据库路径
  4. using(SQLiteConnectionconn=newSQLiteConnection("DataSource="+dbPath))//创建连接
  5. {
  6. conn.Open();//打开连接
  7. using(SQLiteTransactiontran=conn.BeginTransaction())//实例化一个事务
  8. {
  9. for(inti=0;i<100000;i++)
  10. {
  11. SQLiteCommandcmd=newSQLiteCommand(conn);//实例化SQL命令
  12. cmd.Transaction=tran;
  13. cmd.CommandText="insertintostudentvalues(@id,@name,@sex)";//设置带参SQL语句
  14. cmd.Parameters.AddRange(new[]{//添加参数
  15. newSQLiteParameter("@id",i),
  16. newSQLiteParameter("@name","中国人"),
  17. newSQLiteParameter("@sex","男")
  18. });
  19. cmd.ExecuteNonQuery();//执行查询
  20. }
  21. tran.Commit();//提交
  22. }
  23. }
  24. }

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

读取数据:

C#代码收藏代码
  1. staticvoidMain(string[]args)
  2. {
  3. SQLiteConnectionconn=null;
  4. stringdbPath="DataSource="+Environment.CurrentDirectory+"/test.db";
  5. conn=newSQLiteConnection(dbPath);//创建数据库实例,指定文件位置
  6. conn.Open();//打开数据库,若文件不存在会自动创建
  7. stringsql="select*fromstudent";
  8. SQLiteCommandcmdQ=newSQLiteCommand(sql,conn);
  9. SQLiteDataReaderreader=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. }

数据读取成功。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表