• SQLite安装和调用


      想把项目的SQL SERVER数据库换掉,因为SQL SERVER过于庞大,而我的项目只是小型的桌面应用程序。

      网上搜了一下,发现了SQLite,真是个好东西,无需安装和部署,关键是客户电脑什么都不用装就能使用数据库,大小只有1M多,正是我想要的。

      花了半天时间,把项目的数据库替换掉,SQL语句基本都能用,只修改了个别语句。把SQLite的用法做个简单的记录。

      一、SQLite安装

      下载地址:http://www.sqlite.org/download.html 我用的是win7 32位,选了这两个。

      下载解压后,将两个加压后的文件放入C盘新建的sqlite文件夹,或者其他任意的文件夹,作为SQLite的安装路径。

      如果使用dos环境配置数据库和表结构,需要用到sqlite3这个命令,需要将sqlite3.exe配置到系统环境变量,右击计算机->属性->高级系统设置->环境变量,编辑Path,添加C:sqlite,

    即我们建立的安装路径。

    添加后,可以使用cmd,输入sqlite3,出现

      即为添加成功,然后我们可以在dos窗口下使用命令创建数据库和表,包括各种增删改查操作。如果不喜欢dos操作,就不用添加环境变量,直接使用可视化工具。

      二、SQLite可视化工具

      我个人喜欢可视化操作,虽然没有dos操作“高大上”,但是有方便的工具为啥不用呢?我搜了一下,SQLite的可视化工具还挺多,我下了一款,叫SQLite Studio,感觉还可以。

      SQLite Studio下载地址:https://sqlitestudio.pl/index.rvt 

      在可视化工具下,傻瓜式创建数据库和表。

      三、SQLite驱动

      数据库创建好后,需要程序连接数据库,因为我用的是C#,所以还要下载C# 32位的驱动程序。

      驱动下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki ,我习惯用.net 4.0,所以下载了这个

      下载后直接安装,然后在程序里引用安装路径下的System.Data.SQLite.dll,导入命名空间:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SQLite;
    namespace DAL
    {
        public class DAL_LOGIN
        {
            private static string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString;
         System.Data.DataSet ds = new System.Data.DataSet();
            SQLiteConnection sqlConn = new SQLiteConnection();
            SQLiteCommand sqlComm = new SQLiteCommand();
            SQLiteDataAdapter sqlDa = new SQLiteDataAdapter();
            SQLiteCommandBuilder scb = new SQLiteCommandBuilder();
    
            public void Conn()
            {
                if(sqlConn.State == ConnectionState.Closed)
                {
                    sqlConn = new SQLiteConnection(conStr);
                    sqlConn.Open();
                    sqlComm.Connection = sqlConn;
                    sqlComm.CommandType = CommandType.Text;
                }
    
            }
    
            public void Close()
            {
                sqlDa.Dispose();
                sqlDa = null;
                sqlComm.Dispose();
                sqlComm = null;
                sqlConn.Dispose();
                sqlConn = null;
            }
    
            public DataTable GetUserName()
            {        
                sqlComm.CommandText="select distinct UserName from CMSUSERINFO order by UserName asc";
                sqlComm.Parameters.Clear();
    
                sqlDa.SelectCommand = sqlComm;        
                sqlDa.Fill(ds, "MER_LOGIN_USERNAME");
                ds.Tables["MER_LOGIN_USERNAME"].Clear();
                sqlDa.Fill(ds, "MER_LOGIN_USERNAME");
    
                return ds.Tables["MER_LOGIN_USERNAME"];
            }
            public int CheckUserInfo(string name,string pass)
            {
                    sqlComm.CommandText = "select count(*) from CMSUSERINFO where UserName = @name and UserPass =@pass";
                    sqlComm.Parameters.Clear();
                    var paras = new SQLiteParameter[] { new SQLiteParameter("@name", name), new SQLiteParameter("@pass", pass) };
                    sqlComm.Parameters.AddRange(paras);
                    int n =int.Parse(sqlComm.ExecuteScalar().ToString());
                    return n;
            }
    
        }
    
    }

      使用App.config配置连接字符串:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name="SQLConnectionString" 
             connectionString="Data Source=|DataDirectory|*.db;Pooling=true;FailIfMissing=false"
             providerName="System.Data.SQLite"/>
      </connectionStrings>
    </configuration>

      我喜欢把*.db放入到应用程序路径下,直接拷贝就能在其他电脑上运行。在客户电脑文件夹内只需要System.Data.SQLite.dll和*.db这两个文件即可访问数据库,当然.net 4.0是必需的。

    
    
     
    
    
    
  • 相关阅读:
    本来一行可以代替的树节点搜索
    mssql 重新开始标识
    TabContainer实现服务器端回传
    CSS中图片路径的问题
    Javascript在IE下设置innerHTML时出现"未知的运行时错误"
    sql union和union all的用法及效率
    关于动态添加TabPanel遇到的问题以及思考
    关于linq to sql调用存储过程,出现"无法枚举查询结果多次"的问题
    SQL Server 2005连接服务器时的26号错误解决!
    SQL 2000和2005 获取两表的差集
  • 原文地址:https://www.cnblogs.com/hryan/p/7967561.html
Copyright © 2020-2023  润新知