中使用SQLite数据库的方法介绍

【SQLite管理工科具简要介绍】
推荐以下2款:
Navicat for
SQLite:效能特别刚劲,大约包涵了数据库管理工科具的富有要求效能,操作简便,轻松上手。唯龙精虎猛的根基差是不可能打开由System.Data.SQLite.dll加密过的数据库。
Database.Net:山东人用.net开拓的全能数据库管理工具,能够管理二种数据库,满含MSSQL、MYSQL、IBM
DB2、Oracle、Access、Excel、OleDb、Odbc等十三种数据库(或数额接口),功用未有Navicat那么多,只满含最基本成效。对SQLite来讲,Database.Net最大的亮点是支撑展开由System.Data.SQLite.dll加密过的数据库,且能够每一天对数据库设置密码,是.net下开采SQLite必备的小工具。下载地址:
脚本之家下载地址
//www.jb51.net/database/41238.html
建议以Navicat for
SQLite为主,Database.Net为辅,只要提到到数据库加密时才用后世。
【操作SQLite实例】
操作SQlite的措施基本同任何数据库一样,但有一点点组别:
『例1』整数就好像都以Int64的。
询问出网站App_Data目录下“省市.db”数据库中city表的总记录数

复制代码 代码如下:

SQLiteConnection cn = new SQLiteConnection(“Data
Source=|DataDirectory|省市.db;Version=3”);
SQLiteCommand cmd = new SQLiteCommand(“select count(*) from city”,
cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write(recordCount);

SQLite中count函数重回的是二个Int64的整数,那一点同MSSQL、Access等不等。实际上,经过简单的使用开掘,就像是具备INTEGE凯雷德字段的再次回到值都以Int64,那一点未经过有效申明。ExecuteScalar方法重回三个object实例,依据C#规定,拆箱时举行正规化转变,必需调换到该object实例实际存款和储蓄的格式,由此分两步,先转变来Int64,再调换到int。当然用.net中一些高等调换器如Convert.ToInt32措施只要一步就能够了。
『例2』批量增加和删除改时须求用工作,不然频率好低。
批量插入一千条记下,每条记下唯有轻松的id、name、password多个字段:

复制代码 代码如下:

SQLiteConnection cn = new SQLiteConnection(“Data
Source=c:\\测试.db3;Version=3;password=12345”);
SQLiteCommand cmd = new SQLiteCommand(“select count(*) from test”,
cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);
for (int i = 0; i < 1000; i++)
{
cmd.CommandText = “insert into test values(@id,@name,@password)”;
cmd.Parameters.AddWithValue(“@id”, i);
cmd.Parameters.AddWithValue(“@name”, “姓名” + i);
cmd.Parameters.AddWithValue(“@password”, (i * 2).ToString());
cmd.ExecuteNonQuery();
}
cmd.CommandText = “select count(*) from test”;
recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);

经过测量试验,这段代码中的for循环费用了七千0~七千0飞秒,一分钟多!
改用事务实行:

复制代码 代码如下:

SQLiteConnection cn = new SQLiteConnection(“Data
Source=c:\\测试.db3;Version=3;password=12345”);
SQLiteCommand cmd = new SQLiteCommand(“select count(*) from test”,
cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);
SQLiteTransaction tran = cn.BeginTransaction();
cmd.Transaction = tran;
try
{
for (int i = 0; i < 1000; i++)
{
cmd.CommandText = “insert into test values(@id,@name,@password)”;
cmd.Parameters.AddWithValue(“@id”, i);
cmd.Parameters.AddWithValue(“@name”, “姓名” + i);
cmd.Parameters.AddWithValue(“@password”, (i * 2).ToString());
cmd.ExecuteNonQuery();
}
tran.Commit();
}
catch
{
tran.Rollback();
Response.Write(“实行出错!”);
}
finally
{
cmd.CommandText = “select count(*) from test”;
recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);
}

由此测验,这段代码中的try部分只用了100~150阿秒!开启事务后,功效非常高!
『例3』平日开垦中能够编写本身的数据库通用操作类,进一步封装ADO.NET。
如上边用专门的工作操作的代码,改用数据库通用操作类后:

复制代码 代码如下:

SQLiteData md = new SQLiteData(“Data
Source=c:\\测试.db3;Version=3;password=12345”);
int recordCount = (int)(Int64)md.ExecuteScalar(“select count(*) from
test”);
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);
md.CreateTransaction();
try
{
for (int i = 0; i < 1000; i++)
md.ExecuteNonQuery(“insert into test values(@id,@name,@password)”,
“@id”, i, “@name”, “姓名” + i, “@password”, (i * 2).ToString());
md.CommitTransaction();
}
catch
{
md.RollBack();
Response.Write(“实施出错!”);
}
finally
{
recordCount = (int)(Int64)md.ExecuteScalar(“select count(*) from
test”);
md.Close();
Response.Write(“当前的总记录数:” + recordCount + “<br/>”);
}

能够看到代码精简了多数。

【SQLite相关有用的链接地址】

SQLite官方网站:

SQLite内置焦点函数参照他事他说加以考察文书档案:

SQLite日期时间函数参照他事他说加以考察文书档案:

SQLite数学函数参照他事他说加以考察文书档案:

SQLite相关SQL语法参谋文档:

System.Data.SQLite.dll数据访谈驱动下载地址:

你只怕感兴趣的稿子:

  • C#操作SQLite方法实例详解
  • ASP.NET(C#)中操作SQLite数据库实例
  • C#操作SQLite数据库方法小结(创设,连接,插入,查询,删除等)
  • C#中完结在叁十几个人、陆18位系统下自行切换差异的SQLite
    dll文件
  • C#实现Excel导入sqlite的方法
  • C#依据SQLiteHelper类似SqlHelper类达成存取Sqlite数据库的法子
  • C#简单易行访谈SQLite数据库的点子(安装,连接,查询等)
  • c#三种数据库的大数据批量布置(SqlServer、Oracle、SQLite和MySql)
  • C#消除SQlite并发非常难题的方法(使用读写锁)
  • C#
    SQLite执行功用的优化学科

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注