• C#连接SQLite的方法


    1. 结合Enterprise Library连接,操作SQLite  

      企业库是我们常用的框架之一,可以从http://entlib.codeplex.com/下载。安装之后有源代码和chm的文档。最新版本目前是V5.0。里面的很多思想更值得我们程序员去研究,例如:如何设计可扩展的组建?

      企业库中的数据访问组件更是我们常用的数据访问组件之一。组件默认支持SQL Server和Oracle的数据库访问,支持自定义的扩展。

      使用企业库操作SQLite数据库,需要用到企业库的一个扩展组件,Enterprise Library Contrib 。里面扩展了企业库的很多功能。其中对数据库的扩展包括了访问操作SQLite,让我们可以像在操作SQL SERVER那样,保持代码不用很大的修改,可以很容易的过渡到SQLite上。

      遗憾的是目前的这个entlib contrib的版本是V4.1,它只支持企业库的V4.1版本,也就是说它只能和V4.1版本的企业库的数据访问组件配合使用。否则会报错。

      http://entlib.codeplex.com/上也可以下载到历史版本,也就是可以下载到V4.1。

      用法也可以参考:ASP.NET: Using SQLite with Enterprise Library 3.1

      首先在web.config或者是app.config中添加如下配置

      <configuration> 
          <configSections> 
            <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null /> 
          </configSections> 
          <dataConfiguration defaultDatabase=""> 
             <providerMappings> 
              <add databaseType="EntLibContrib.Data.SQLite.SQLiteDatabase, EntLibContrib.Data.SqLite, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null" 
                name="System.Data.SQLite" /> 
            </providerMappings> 
          </dataConfiguration> 
          <connectionStrings> 
            <add name="sqlite" connectionString="Data Source=|DataDirectory|\db;Pooling=true;FailIfMissing=false" 
              providerName="System.Data.SQLite" /> 
          </connectionStrings> 
      </configuration> 
      上面的connectionstring配置节的db就是 SQLite的数据库文件,将它放在Web应用的App_Data目录,|DataDirectory|就代表这个目录的位置,后面的就是文件名。

      剩下的就是我们使用企业库访问SQL Server是一样的了。

    2. 使用SQLite.NET访问SQLite

      SQLite.NET也是一个数据访问组件,其中的System.Data.SQLite就好像是.NET自带的System.Data.SqlClient一样。里面包含了connection、command等数据访问的常用对象,只是他们前面都有一个前缀sqlite。

      下载地址: http://sqlite.phxsoftware.com/

      添加System.Data.SQLite?的引用之后。在配置文件(web.config or app.config)中添加如下配置

      <system.data> 
          <DbProviderFactories> 
              <remove invariant="System.Data.SQLite"/> 
              <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
          </DbProviderFactories> 
      </system.data>
      也就是添加一个DbProviderFactory的创建源,在代码中就可以使用DbProviderFactory类来创建SQLite的数据访问对象了。
    3. 使用原生态的ADO.NET访问SQLite

      原生态的访问,就是说直接用connection和command这些对象打开数据库,然后打开连接,进行数据的操作。

      DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite"); 
      using (DbConnection conn = fact.CreateConnection()) 
      { 
        conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString; 
        conn.Open(); 
        DbCommand comm = conn.CreateCommand(); 
        comm.CommandText = "select * from customer"; 
        comm.CommandType = CommandType.Text; 
        using (IDataReader reader = comm.ExecuteReader()) 
        { 
            while (reader.Read()) 
            { 
            Response.Write(reader[0]); 
            } 
        } 
      }
    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    第十四章:(2)Spring Boot 与 分布式 之 Dubbo + Zookeeper
    第十四章:(1)Spring Boot 与 分布式 之 分布式介绍
    第九章:Redis 的Java客户端Jedis
    第十三章:(2)Spring Boot 与 安全 之 SpringBoot + SpringSecurity + Thymeleaf
    第八章:(1)Redis 的复制(Master/Slave)
    java学习
    周末总结4
    java
    Cheatsheet: 2012 12.17 ~ 12.31
    Cheatsheet: 2012 10.01 ~ 10.07
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4617874.html
Copyright © 2020-2023  润新知