1.数据库连接(常用连接方法,示例)

  1. 1). 添加引用: System.Data.SQLite.DLL
    2). 打开或创建数据库文件: SQLiteConnection.CreateFile(fileName);
    3). 连接数据库: var connection = new SQLiteConnection(connectionString);
    connectionString 中包含了数据库的一些配置信息,比如数据库文件路径,数据库密码等,可用 SQLiteConnectionStringBuilder 来创建 connectionString
  1. string dbPath = Environment.CurrentDirectory + "/test.db";/*指定数据库路径 */
  2. using(SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))
  3. {
  4. conn.Open();
  5. DbCommand comm = conn.CreateCommand();
  6. comm.CommandText = "select * from customer";
  7. comm.CommandType = CommandType.Text;
  8. using (IDataReader reader = comm.ExecuteReader())
  9. {
  10. while (reader.Read())
  11. {
  12. Response.Write(reader[]);
  13. }
  14. }
  15. }
  1. web.config或者是app.config中添加如下配置,connectionstring配置节的db就是 SQLite的数据库文件,将它放在Web应用的App_Data目录,|DataDirectory|就代表这个目录的位置,
  1. 后面的就是文件名,剩下的就是我们使用企业库访问SQL Server是一样的了。
  1. <configuration>
  2. <configSections>
  3. <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
  4. Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null />
  5. </configSections>
  6. <dataConfiguration defaultDatabase="
  7.  
  8. ">
  9. <providerMappings>
  10. <add databaseType="EntLibContrib.Data.SQLite.SQLiteDatabase, EntLibContrib.Data.SqLite, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
  11. name="System.Data.SQLite" />
  12. </providerMappings>
  13. </dataConfiguration>
  14. <connectionStrings>
  15. <add name="sqlite" connectionString="Data Source=|DataDirectory|\db;Pooling=true;FailIfMissing=false"
  16. providerName="System.Data.SQLite" />
  17. </connectionStrings>
  18. </configuration>
  1.  在该工程上引入System.Data.SQLite.DLL(即wrapper),无需引入SQLite3.dll,因为前者已经包装了后者。 
        在代码中import下: "using System.Data.SQLite;" 
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Data.SQLite;
  5.  
  6. namespace TestSQLite
  7. {
  8. class MyCSharpSQLite
  9. {
  10. private static string connStr;
  11.  
  12. static void Main(string[] args)
  13. {
  14.  
  15. connStr = SQLiteConnectionString.GetConnectionString(".\\Data\\EasyDataBase.db");
  16. Console.WriteLine("SQLite Connect String is : {0}", connStr);
  17.  
  18. //连接测试
  19. //testConnect(connStr);
  20.  
  21. //执行查询
  22. ExecQuery("select * from customers");
  23.  
  24. Console.ReadKey();
  25. }
  26.  
  27. private static void testConnect(string connStr)
  28. {
  29. try
  30. {
  31. SQLiteConnection conn = new SQLiteConnection(connStr);
  32.  
  33. conn.Open();
  34. Console.WriteLine("SQLite Connect OK.");
  35. }
  36. catch (Exception ex)
  37. {
  38. Console.WriteLine("SQLite Connect fail: {0} ", ex.Message);
  39. }
  40. }
  41.  
  42. private static void ExecQuery(string sqlStr)
  43. {
  44. Console.WriteLine(">> Start to query the database....");
  45. using (SQLiteConnection conn = new SQLiteConnection(connStr))
  46. {
  47. conn.Open();
  48. SQLiteCommand comm = conn.CreateCommand();
  49. comm.CommandText = sqlStr;
  50. //comm.CommandType = comm.CommandText;
  51.  
  52. using (SQLiteDataReader reader = comm.ExecuteReader())
  53. {
  54. while (reader.Read())
  55. {
  56. Console.WriteLine(reader[].ToString());
  57. }
  58. }
  59. }
  60. }
  61.  
  62. }
  63.  
  64. /// <summary>
  65.  
  66. /// 生成SQLite连接字符串
  67.  
  68. /// </summary>
  69.  
  70. public static class SQLiteConnectionString
  71. {
  72.  
  73. public static string GetConnectionString(string path)
  74. {
  75. return GetConnectionString(path, null);
  76. }
  77.  
  78. public static string GetConnectionString(string path, string password)
  79. {
  80. if (string.IsNullOrEmpty(password))
  81. {
  82. return "Data Source=" + path;
  83. }
  84. else
  85. {
  86. return "Data Source=" + path + ";Password=" + password;
  87. }
  88. }
  89.  
  90. }
  91. }
  1. 示例1
  1. using System;
  2. using System.Reflection;
  3. using System.IO;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Data.SQLite; //需要安装sqlite for vs
  11. namespace MobileTest
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19.  
  20. public DataSet GetData()
  21. {
  22. try
  23. {
  24. //得到数据库位置
  25. string dbfile = string.Format("{0}\\SqlLiteTest", Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase));
  26. //连接字符串
  27. string connStr = string.Format("Data Source={0};Password=123456", dbfile);
  28. SQLiteConnection conn = new SQLiteConnection(connStr);
  29. string sql = "SELECT Id,Name,age FROM tbl_liteTest";
  30. SQLiteDataAdapter slda = new SQLiteDataAdapter(sql, conn);
  31. DataSet ds = new DataSet();
  32. slda.Fill(ds);
  33. return ds;
  34. }
  35. catch (Exception)
  36. {
  37.  
  38. throw;
  39. }
  40. }
  41. private void Form1_Load(object sender, EventArgs e)
  42. {
  43. DataSet ds = GetData();
  44. foreach (DataRow item in ds.Tables[].Rows)
  45. {
  46. this.comboBox1.Items.Add(item["Name"].ToString());
  47. }
  48. }
  49. }
  50. }

示例2

  1. SQLiteConnection cnn = new SQLiteConnection();
  2. cnn.ConnectionString = @"Data Source=c:sqlite-3_5_0mytest.db";
  3. cnn.Open();
  4.  
  5. SQLiteCommand cmd = new SQLiteCommand();
  6. cmd.Connection = cnn;
  7. cmd.CommandText = "SELECT * FROM mytable1";
  8. SQLiteDataAdapter da = new SQLiteDataAdapter();
  9. da.SelectCommand = cmd;
  10. DataSet ds = new DataSet();
  11. da.Fill(ds);

示例3

下载ADO.NET2.0 Provider for SQLite。下载binaries zip版就可以了。下载完后解压缩,可以在bin目录下找到System.Data.SQLite.DLL。在vs2008中用Add Reference功能把System.Data.SQLite.DLL加到工程里就可以了。

  1. string datasource = "d:/sqllite/sqlite.net/bin/test.db3";
  2. system.data.sqlite.sqliteconnection.createfile(datasource);
  3. //连接数据库
  4. system.data.sqlite.sqliteconnection conn = new system.data.sqlite.sqliteconnection();
  5. system.data.sqlite.sqliteconnectionstringbuilder connstr = new system.data.sqlite.sqliteconnectionstringbuilder();
  6. connstr.datasource = datasource;
  7. connstr.password = "admin";//设置密码,sqlite ado.net实现了数据库密码保护
  8. conn.connectionstring = connstr.tostring();
  9. conn.open();
  10. //创建表
  11. system.data.sqlite.sqlitecommand cmd = new system.data.sqlite.sqlitecommand();
  12. string sql = "create table test(username varchar(20),password varchar(20))";
  13. cmd.commandtext = sql;
  14. cmd.connection = conn;
  15. cmd.executenonquery();
  16. //插入数据
  17. sql = "insert into test values('a','b')";
  18. cmd.commandtext = sql;
  19. cmd.executenonquery();
  20. //取出数据
  21. sql = "select * from test";
  22. cmd.commandtext = sql;
  23. system.data.sqlite.sqlitedatareader reader = cmd.executereader();
  24. stringbuilder sb = new stringbuilder();
  25. while (reader.read())
  26. {
  27. sb.append("username:").append(reader.getstring()).append("\n")
  28. .append("password:").append(reader.getstring());
  29. }
  30. console.writeline(sb.tostring());
  31. console.read();

2.C#对SQLLite的DML操作示例

  1. /*这里新建了一个HyData目录存放数据库*/
  2. string connStr = @"Data Source=" + System.Environment.CurrentDirectory + @"\HyData\HyData.db3;Initial Catalog=sqlite;Integrated Security=True;Max Pool Size=10";
  3.  
  4. /*执行Sql语句
  5. 创建一个表: ExecuteSql("create table HyTest(TestID TEXT)");
  6. 插入些数据: ExecuteSql("insert into HyTest(TestID) values('1001')");
  7. */
  8. private void ExecuteSql(string sqlStr)
  9. {
  10. using (DbConnection conn = new SQLiteConnection(connStr))
  11. {
  12. conn.Open();
  13. DbCommand comm = conn.CreateCommand();
  14. comm.CommandText = sqlStr;
  15. comm.CommandType = CommandType.Text;
  16. comm.ExecuteNonQuery();
  17. }
  18. }
  19.  
  20. /*执行查询
  21. ExecQuery("select * from HyTest");
  22. */
  23. private void ExecQuery(string sqlStr)
  24. {
  25. using (DbConnection conn = new SQLiteConnection(connStr))
  26. {
  27. conn.Open();
  28. DbCommand comm = conn.CreateCommand();
  29. comm.CommandText = sqlStr;
  30. comm.CommandType = CommandType.Text;
  31.  
  32. using (IDataReader reader = comm.ExecuteReader())
  33. {
  34. while (reader.Read())
  35. {
  36. MessageBox.Show(reader[].ToString());
  37. }
  38. }
  39. }
  40. }
  41.  
  42. /* 执行查询返回DataSet */
  43.  
  44. private DataSet ExecDataSet(string sqlStr)
  45. {
  46. using (SQLiteConnection conn = new SQLiteConnection(connStr))
  47. {
  48. conn.Open();
  49. SQLiteCommand cmd = conn.CreateCommand();
  50. cmd.CommandText = sqlStr;
  51. cmd.CommandType = CommandType.Text;
  52.  
  53. SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
  54. DataSet ds = new DataSet();
  55. da.Fill(ds);
  56.  
  57. return ds;
  58. }
  59. }
  1. System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection(@"Data Source=d:\maindb.db;Version=3");
  2.  
  3. string datasource = "d:\\maindb.db";
  4. //连接数据库
  5. System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection();
  6. System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
  7. connstr.DataSource = datasource;
  8. conn.ConnectionString = connstr.ToString();
  9. conn.Open();
  10. System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
  11. //取出数据
  12. string sql = "SELECT * FROM Source";
  13. cmd.CommandText = sql;
  14. System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
  15. StringBuilder sb = new StringBuilder();
  16. while (reader.Read())
  17. {
  18. sb.Append("ID:").Append(reader.GetString()).Append("\n")
  19. .Append("NAME:").Append(reader.GetString());
  20.  
  21. }
  22. MessageBox.Show(sb.ToString());

3.对SQLLite DML操作类封装

使用C#对SQLLite进行操作的更多相关文章

  1. (转)SQLLite数据操作

    原文:http://dreamboy.blog.51cto.com/3180937/722352 SQLLite数据操作 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存 ...

  2. 09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider

    1.  编写ContentPrivider提供者的Android应用 清单文件 <?xml version="1.0" encoding="utf-8"? ...

  3. Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

    前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增.删.查.改) 目录 1. SQLite数据库介绍 SQLite是Android内置的 ...

  4. flutter插件汇总

    audio_recorder: any #录音.播放 flutter_sound: ^#录音 dropdown_menu: ^#下拉菜单 simple_permissions:#权限获取 easy_a ...

  5. flutter 常用插件

    audio_recorder: any #录音.播放 flutter_sound: ^1.1.5#录音 dropdown_menu: ^1.1.0#下拉菜单 simple_permissions:#权 ...

  6. 奔跑吧DKY——团队Scrum冲刺阶段-Day 7

    今日完成任务 谭鑫:将人物图添加到游戏以及商店界面中,实现商店的选择换装功能 黄宇塘:制作人物图.背景图 赵晓海:阅读所有代码测试所有功能,美化部分界面 方艺雯:为商店界面及关于界面添加必要文字说明 ...

  7. python笔记-19 javascript补充、web框架、django基础

    一.JavaScript的补充 1 正则表达式 1.1 test的使用 test 测试是否符合条件 返回true or false 1.2 exec的使用 exec 从字符串中截取匹配的字符 1.3 ...

  8. 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)

    关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...

  9. Flutter-常用插件庫

    alibaba/flutter_boost:路由 install_plugin 2.0.0#app下载更新插件 audio_recorder: any #录音.播放 flutter_sound: ^1 ...

随机推荐

  1. ASP.NET复合控件

    ① DropDownList 下拉列表 会被编译为select option ps.name 服务端常用,id 客户端常用 一般用法: 一.将数据放进去 方法一:同WinForm相同,给定数据源,然后 ...

  2. cookie 二:

    本篇随笔从cookie的入门开始,介绍了cookie的设置获取和移除,还有一些小的应用案例:一.设置cookie <script> //设置cookie:function setCooki ...

  3. Hadoop技术内幕-第一章 阅读原代码前的准备

    1.1 源代码学习环境 1.1.1 基础软件的下载 JDK-http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...

  4. MVC5 + EF6 入门完整教程二:从前端的UI开始

    从前端的UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,Vie ...

  5. JSP显示不完全问题

    这个问题出现之后其实有点让我手足无措,因为根本不知道原因出在哪儿. 因为出现这个问题之后修改过一次代码,所以我以为是因为这次修改出现的问题. 但细想之下,这次的修改根本没有涉及到任何有关这方面的东西. ...

  6. [原创]C#按比例缩放窗体控件及字体

    按照比例缩放窗体控件及字体,如需等比例缩放,只需将x,y的比例设置成相同即可. 为了减小误差,建议使用原始尺寸来计算比例. private float X, Y; private bool b = f ...

  7. MYSQL 5.6中禁用INNODB引擎

    并不是所有人都需要INNODB引擎,虽然它弥补了MYSQL缺乏事务支持的毛病,但是它的磁盘性能一直是让人比较担忧的.另外比较老的PHP系统,大多是采用MYISAM引擎在MYSQL建表,似乎INNODB ...

  8. WeX5 快速开发平台 V3.6 正式版发布

    WeX5 V3.6 正式版核心特性:一.打包特性增强: 1- 提供多WebView选择,引入腾讯X5引擎,可自动适配移动设备环境进行切换,使通过X5打包生成的App具备更高的兼容性及更小的文件尺寸: ...

  9. supervisor安装配置与使用

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  10. OD调试篇6--对一些真正的小程序进行一点点的修改

    先打开这个程序看看,提醒你这是一个未注册版本的软件.会发现只能添加4个联系人,这显然是我不想看见的,于是我要对这个程序进行一些修改,嘿嘿... 通过OD载入这个程序 有一些(SEH)也就是异常,我们可 ...