zoukankan      html  css  js  c++  java
  • 揭秘C# SQLite的从安装到使用

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

      既然嵌入型的数据库SQLite这么小巧,那么我们.NET开发人员怎么把优美的C#语言和SQLite数据库结合起来进行开发呢,下面开始揭秘第一步:

      1:从http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki获得一个SQLite数据库的安装版本,建议选择Setups for 32-bit Windows (.NET Framework 4.0)下面的sqlite-netFx40-setup-bundle-x86-2010-1.0.89.0.exe安装文件,exe安装文件大小为10.73M,截图如下:

      

    这个版本的SQLite适用于Visual Studio 2010的开发环境,如过你的VS开发环境不同,请下载与之相符的SQLite版本。

          2:下载完成SQLite的安装文件之后,双击进行安装:

    建议安装目录选择默认的C:Program Files (x86)System.Data.SQLite2010  截图如下:

                                                
    点击Next,安装方式选择完全安装:

    点击Next,选择开始菜单文件夹这一步同样保持默认安装选项就OK了:

                                                
    点击Next,进入“选择附加任务”选择界面,全打上勾:    

    点击Next之后,单击Install进行安装。

    安装完成之后,打开你的C:Program FilesSystem.Data.SQLite2010in目录,你会看到SQLite.Designer.dll、System.Data.SQLite.dll、System.Data.SQLite.Linq.dll这三个dll,在项目中引用后两个Dll文件就可以进行ado.net数据库访问了。

           既然SQLite已经安装完成,那么有没有像Sqlserver Management Studio这样的可视化数据库管理软件呢?答案是肯定的,请读者自行百度,这里推荐一个FireFox浏览器的可视化插件,叫做SQLite Manager,下面介绍一下安装过程:

                                                         
          安装一个FireFox的较新版本后打开浏览器,点击工具栏上的“工具”→附加组件,在右上角的位置有个“搜索附加组件”的文本框,键入“SQLite Manager”

    进行搜索,找到之后安装重启浏览器,再次点击工具栏上的“工具”,就会看到这个插件了:

    到这里,SQLite数据库与可视化管理组件就安装完成了,下面开始揭秘的第二步,创建一个简单的数据库文件:

      打开SQLite Manager插件,界面如下所示:

    点击菜单栏中的Database,选择New Database,在弹出的对话框中填入数据库名称“test1”后点击确定,选择一个数据库文件存放的目录位置,单击选择文件夹,数据库创建成功,截图如下:

                                                    
    接下来,右击Tables,选择弹出菜单中的“Create Table”,会弹出一个表结构设计窗口,我们创建一个简单的Users表,截图如下,其中Id为自动增长的int主键:

      创建完成Users表后,左侧Tables下会显示出当前数据库中的所有表,下面让我们快速为这张表添加几条数据,怎么做呢?那就是点击界面右侧的“Browse&Search”选项卡,通过Add按钮向Users表中添加几条测试数据,截图如下:

    至此,关于SQLite数据库方面的操作就告一段落了,下面开始揭秘的第三步,建立一个VS2010 WinForm解决方案,通过ADO.NET操作数据库:

      首先,为建好的项目添加对System.Data.SQLite Core、System.Data.SQLite forLINQ和System.Configuration的引用,截图如下:

                                                
    接下来,在项目中添加4个文件夹,分别为Model,DAL,BAL,SQLiteDB,把我们刚才建好的test.sqlite数据库文件添加到SQLiteDB文件夹下,同时修改test.sqlite的属性“复制到输出目录”为“始终复制”,截图如下:

    为项目中添加应用程序配置文件App.config,截图如下:

                                                
    打开App.config配置文件,向configuration节点下添加连接字符串的配置信息:

     

    1 <connectionStrings>
    2     <add name="connStr" connectionString="Data Source=SQLiteDB/test.sqlite;" />
    3 </connectionStrings>
    连接字符串的配置信息

    在Model文件夹下面创建一个Users.cs类,代码如下:

     

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace SQLiteBlog.Model
     7 {
     8     public class Users
     9     {
    10         private int id;
    11         private string userName;
    12         private string password;
    13         private int age;
    14         private string email;
    15 
    16         public int Id
    17         {
    18             get { return id; }
    19             set { id = value; }
    20         }
    21         public string UserName
    22         {
    23             get { return userName; }
    24             set { userName = value; }
    25         }
    26         public string Password
    27         {
    28             get { return password; }
    29             set { password = value; }
    30         }
    31         public int Age
    32         {
    33             get { return age; }
    34             set { age = value; }
    35         }
    36         public string Email
    37         {
    38             get { return email; }
    39             set { email = value; }
    40         }
    41     }
    42 }
    Model文件夹下的Users.cs类

     

    在DAL文件夹下创建一个DalUsers.cs类,代码如下:

     

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Configuration;
     6 using System.Data.SQLite;
     7 using System.Data;
     8 
     9 namespace SQLiteBlog.DAL
    10 {
    11     public class DalUsers
    12     {
    13         private static readonly string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
    14 
    15         /// <summary>
    16         /// 获取所有的用户信息
    17         /// </summary>
    18         public DataTable GetAllUsers()
    19         {
    20             DataTable dt = new DataTable();
    21             using (SQLiteConnection conn = new SQLiteConnection(connStr))
    22             {
    23                 conn.Open();
    24                 using (SQLiteCommand cmd = conn.CreateCommand())
    25                 {
    26                     cmd.CommandText = "select * from users";
    27                     SQLiteDataReader reader = cmd.ExecuteReader();
    28                     dt.Load(reader);
    29                     reader.Close();
    30                     return dt;
    31                 }
    32             }
    33         }
    34     }
    35 }
    DAL文件夹下的DalUsers.cs类

    在BAL文件夹下创建BalUsers.cs类,代码如下:

     

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using SQLiteBlog.DAL;
     6 using SQLiteBlog.Model;
     7 using System.Data;
     8 
     9 namespace SQLiteBlog.BAL
    10 {
    11     public class BalUsers
    12     {
    13         DalUsers dalUsers = new DalUsers();
    14 
    15         public List<Users> GetAllUsers()
    16         {
    17             List<Users> users = new List<Users>();
    18             DataTable dt = dalUsers.GetAllUsers();
    19             if (dt.Rows.Count > 0)
    20             {
    21                 foreach (DataRow row in dt.Rows)
    22                 {
    23                     Users user = new Users
    24                     {
    25                         Id = Convert.ToInt32(row["Id"]),
    26                         UserName = row["UserName"].ToString(),
    27                         Password = row["Password"].ToString(),
    28                         Age = Convert.ToInt32(row["Age"]),
    29                         Email = row["Email"].ToString()
    30                     };
    31                     users.Add(user);
    32                 }
    33             }
    34             return users;
    35         }
    36     }
    37 }
    BAL文件夹下的BalUsers.cs类

     

    最后,在Form1窗体的Load事件中添加如下代码:

     

    1 BalUsers balUsers = new BalUsers();
    2 List<Users> users = balUsers.GetAllUsers();
    3 MessageBox.Show(users.Count.ToString());
    Form1窗体Load事件中的代码

     

    OK,调试运行,在窗体加载事件触发的时候,会Show出一个对话框,

    赤裸裸的证明我们的代码运行成功了,Cheers!

     

     

  • 相关阅读:
    网站安全检测
    Centos下Subversion 服务器安装配置
    报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
    八个免费在线网站速度测试服务-分析影响网页加载因素提高网站访问速度
    Python处理HTML转义字符
    atitit.TokenService  token服务模块的设计
    Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结
    atitit.TokenService  token服务模块的设计
    Atitit.atijson 类库的新特性设计与实现 v3 q31
    Atitit.atijson 类库的新特性设计与实现 v3 q31
  • 原文地址:https://www.cnblogs.com/liulongbinblogs/p/3437021.html
Copyright © 2011-2022 走看看