zoukankan      html  css  js  c++  java
  • 关于.Net中使用SQLite数据库的方法

    参考:

    SQLite之C#连接SQLite
    https://www.cnblogs.com/icebutterfly/p/7850689.html

    关于SQLite的库安装比较特殊:

    下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki --ok!
    https://www.sqlite.org/download.html。---用于安卓、Mac、Linux等平台的下载。

    下载安装包:
    sqlite-netFx20-setup-x64-2005-1.0.108.0.exe ---测试ok!
    或者 sqlite-netFx45-setup-x64-2012-1.0.108.0.exe 需要先卸载2.0版,再安装。---测试ok!
    再下载 sqlite-netFx45-binary-x64-2012-1.0.108.0.zip(内含xml函数注释!)
    (为了与其它软件保持一致,建议安装.Net 4.5版本的!)

    默认安装路径:C:Program FilesSystem.Data.SQLite

    .Net引用:只需引用安装bin目录下的,System.Data.SQLite.dll一个文件即可!

    注意:

    1、带bundle的表示动态库是按混合模式编译的,还有纯x86和纯x64模式的库,共3种,按实际需要选择。(与项目的生成--目标平台一致才行!建议下x64版本的!!)

    2、下载的库,一定要安装,才行!!(只引用,未安装,运行会报错!!)

    3、.Net使用SQLite,只需要引用System.Data.SQLite.dll,根本用不着 sqlite3.dll。没想到吧!

    …………………………
    SQLite 介绍:

    SQLite,是一款轻型的数据库,用于本地的数据储存。开源数据库。

    优点,它占用资源非常的低,在嵌入式设备中需要几百K的内存就够了;作为轻量级数据库,他的处理速度也足够快;支持的的容量级别为T级;独立: 没有额外依赖;开源;支持多种语言。

    详细优点:

    1、它的设计目标是嵌入式的,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

    2、跨平台和多语言支持:它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,
    比如C, C++, PHP, Perl, Java, C#,Python, Ruby等。

    3、速度快:比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
    (比一些流行的数据库在大部分普通数据库操作要快。)

    4、支持数据库大小至2TB。

    5、足够小, 大致13万行C代码, 4.43M

    6、简单, 轻松的API

    7、源码完全的开源, 你可以用于任何用途, 包括出售它。

    8、它还支持事务处理功能等等。


    使用.NET操作SQLLITE:

    示例代码1:

    public string Query()
    {
    string datasource = "e:/tmp/test.db";
    System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
    //连接数据库
    System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
    System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
    connstr.DataSource = datasource;
    connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
    conn.ConnectionString = connstr.ToString();
    conn.Open();
    //创建表
    System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
    string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
    cmd.CommandText = sql;
    cmd.Connection = conn;
    cmd.ExecuteNonQuery();
    //插入数据
    sql = "INSERT INTO test VALUES('a','b')";
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    //取出数据
    sql = "SELECT * FROM test";
    cmd.CommandText = sql;
    System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
    StringBuilder sb = new StringBuilder();
    while (reader.Read())
    {
    sb.Append("username:").Append(reader.GetString(0)).Append(" ")
    .Append("password:").Append(reader.GetString(1));
    }
    //MessageBox.Show(sb.ToString());

    return sb.ToString();

    }

    示例代码2:事务操作:

    using (SQLiteConnection conn = new SQLiteConnection(connectionString))
    {
    conn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = conn;
    SQLiteTransaction tx = conn.BeginTransaction();
    cmd.Transaction = tx;
    try
    {
    for (int n = 0; n < SQLStringList.Count; n++)
    {
    string strsql = SQLStringList[n].ToString();
    if (strsql.Trim().Length > 1)
    {
    cmd.CommandText = strsql;
    cmd.ExecuteNonQuery();
    }
    }
    tx.Commit();
    }
    catch (System.Data.SQLite.SQLiteException E)
    {
    tx.Rollback();
    throw new Exception(E.Message);
    }

  • 相关阅读:
    读jQuery之十六(事件代理)
    双向列表(JS)
    单向链表(JS)
    子程序(过程、函数、方法)
    jQuery(1.6.3) 中css方法对浮动的实现缺陷
    操作class属性的新APIclassList
    ajax后退解决方案(四)
    设置元素浮动的几种方式
    各浏览器中使用getAttribute获取checkbox/radio的checked值不同
    IE6/7不支持hashchange事件
  • 原文地址:https://www.cnblogs.com/dblg/p/9411435.html
Copyright © 2011-2022 走看看