`

C#连接SQLite的...方法

阅读更多

C#连接SQLite的...方法

 

1 SQLite简介

  SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

  官方网站:http://www.sqlite.org/

      详细简介:http://baike.baidu.com/view/19310.htm

2 C#连接,操作SQLite数据库

  

2.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中添加如下配置

 

代码
<!--<br/ /> <br/ /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ /> http://www.CodeHighlighter.com/<br/ /> <br/ /> --><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是一样的了。

 

 
代码
<!--<br/ /> <br/ /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ /> http://www.CodeHighlighter.com/<br/ /> <br/ /> -->  Database db=DatabaseFactory.CreateDatabase ("ConnectionString");
                DbCommand comm 
= db.GetStoredProcCommand("GetUserByID");
                IDataReader reader 
= null;
                db.AddInParameter(comm, 
"UserID", DbType.String, "12");
                
using (reader = db.ExecuteReader(comm))
                {
                   
                }

 

 2.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)中添加如下配置

  

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->  <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的数据访问对象了。

 

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->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]);
                            }
                        }
                    }

 

 2.3 使用原生态的ADO.NET访问SQLite

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

 

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--> using (DbConnection conn = new SQLiteConnection( 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]);
                            }
                        }
                    }

 

 3 SQLite的相关工具

 

3.1 SQLite Database Browser

  

  既然SQLite是一个数据库,那么我们肯定想要一个GUI工具来操作这个数据库,进行管理。创建库、表、执行SQL语句等操作都可以在一个GUI上进行操作就好了。SQLite Database Browser就是这样的一款工具,下载地址:http://sqlitebrowser.sourceforge.net/

  

 

  在上图中看到三个tab:Database Structure,Browser Data,Execute SQL。

  通过第一个可以查看数据库的结构,第二个可以浏览数据,第三个可以执行任何SQL语句,下面可以显示sql语句的执行结果。这个工具还可以进行数据库的管理工作。

分享到:
评论

相关推荐

    System.Data.SQLite.DLL C# 读写sqlite数据库

    在 C# 中使用 System.Data.SQLite.DLL,首先需要将其添加为项目引用。你可以通过 NuGet 包管理器安装,搜索 "System.Data.SQLite" 并按照提示进行安装。安装后,该 DLL 文件会被自动包含到你的项目中,你可以直接...

    C#连接sqlite 使用的类库System.Data.SQLite.dll

    在.NET框架中,C#连接SQLite数据库主要依赖于第三方库,如`System.Data.SQLite.dll`。这个类库为开发者提供了一种方便的方式来操作SQLite数据库,它集成了ADO.NET接口,使得与SQLite的数据交互变得和使用SQL Server...

    System.Data.SQLite.dll各版本

    System.Data.SQLite.dll提供了丰富的API,包括连接管理、命令执行、事务处理、数据读写等功能。例如,通过SQLiteConnection对象,开发者可以创建和管理到SQLite数据库的连接;使用SQLiteCommand对象,可以执行SQL...

    System.Data.SQLite.dll(sqlite_1.0.76.0.zip)

    System.Data.SQLite.dll是SQLite在.NET平台上的一个封装库,它为C#和其他.NET语言提供了对SQLite数据库引擎的全面支持。SQLite是一款轻量级、自包含的数据库系统,广泛应用于嵌入式系统和移动应用,因为它不需要单独...

    SQLITE64位(System.Data.SQLite.DLL).zip

    System.Data.SQLite.DLL是.NET Framework下的SQLite数据库连接库,它是.NET应用程序与SQLite数据库交互的桥梁。这个DLL文件包含了.NET环境下操作SQLite数据库所需的所有功能,包括但不限于创建、打开、查询、更新和...

    System.Data.SQLite.dll (.net4.0,win64位)

    C#连接sqlite数据库,要添加引用System.Data.SQLite.dll,但是这个引用也分版本号的,在此分享.net4.0版的供大家下载

    System.Data.SQLite.dll ;C#(.net)连接SQLite数据库驱动

    QLite操作驱动的dll。下载完成后,新建一个winform项目,在引用中添加[System.Data.SQLite.dll],并在[Form.cs]中添加[using System.Data.SQLite;]

    System.Data.SQLite.dll x64,x86多个版本

    4. LINQ支持:通过System.Data.SQLite.Linq库,开发者可以使用C#或VB.NET的LINQ查询语法来操作SQLite数据库,使得代码更加简洁、可读性强。 5. 支持存储过程:尽管SQLite本身不直接支持存储过程,但System.Data....

    64位System.Data.SQLite.dll

    System.Data.SQLite.dll是一个针对.NET Framework开发的SQLite数据库引擎的组件,专为64位操作系统设计。SQLite是一个轻量级、自包含的SQL数据库引擎,广泛应用于各种跨平台的应用程序中,因为它无需单独的服务器...

    c#sqlite的dll文件:System.Data.SQLite.DLL

    标题中的"C# SQLite.DLL"指的是C#编程环境下使用的SQLite数据库连接库的动态链接库(DLL)文件。SQLite是一款开源的、轻量级的、自包含的SQL数据库引擎,广泛应用于各种应用程序中,特别是需要在无服务器或轻量级...

    Unity数据库Sqlite.dll和Data.dll

    `Mono.Data.Sqlite.dll`包含了对SQLite数据库的访问接口,允许Unity开发者使用C#或其他.NET语言编写代码来创建、查询和管理SQLite数据库。通过这个库,你可以执行SQL语句、创建表、插入和更新数据,甚至进行事务处理...

    SQLite.dll vs引用

    6. **API使用**: 使用SQLite.dll,开发者可以调用一系列的类和方法,如SQLiteConnection、SQLiteCommand、SQLiteDataReader等,进行数据库连接、查询、插入、更新和删除等操作。 7. **性能优化**: SQLite提供了多种...

    System.Data.SQLite.dll-32位版本

    总结来说,System.Data.SQLite.dll是.NET开发环境中用于连接和操作SQLite数据库的组件,具备轻量、独立、高效的特点,适用于各种32位Windows应用程序。开发者可以借助它轻松地在应用程序中集成SQLite数据库功能。

    System.Data.SQLite 1.0.112.rar

    附带的System.Data.SQLite.xml文件很可能是XML文档,包含了关于这些DLL组件的元数据,例如API文档和类库的说明,方便开发者查阅和理解API的使用方法。 说明.txt文件应该提供了关于这个库的安装、配置和使用的基本...

    SQLite.Interop.dll

    在.NET环境下,SQLite数据库的连接和操作主要依赖于SQLite.Interop.dll这个动态链接库。 当描述中提到“navicat 连接加密sqlite时 file not a database”这个问题,这通常意味着Navicat尝试连接到一个SQLite数据库...

    C#操作sqlite.CAD制图

    首先,要使用C#操作SQLite数据库,你需要引入System.Data.SQLite库。这个库提供了ADO.NET数据提供者,使得你可以使用.NET的数据访问方式来操作SQLite数据库。以下是一个简单的示例,展示如何连接到SQLite数据库并...

    c#-sqlite.zip

    在提供的压缩包文件`c#-sqlite.zip`中,可能包含了示例代码或项目文件,用于演示上述步骤。文件名`test`可能是指测试文件或示例数据库,具体用途需解压后查看。学习和理解这些知识点对于C#开发者来说至关重要,因为...

    C# 操作SQLite示例源码

    该示例演示C#如何连接SQLite并实现增删改查操作;演示批量操作,须要使用事务处理,才能提高效率;同时加入了SQLDapper框架,代码简练,实用,可以直接放在项目中使用;操作完成后,是完全释放了数据库资源的。该压缩...

    针对windows系统的X64和X86平台的System.Data.SQLite.dll

    System.Data.SQLite.dll是SQLite数据库引擎在.NET Framework环境下的一个封装库,它允许.NET开发者方便地在Windows系统上使用SQLite数据库。这个压缩包包含了两个版本的dll文件,分别对应于X64(64位)和X86(32位)...

Global site tag (gtag.js) - Google Analytics