使用C#对SQLLite进行操作
1.数据库连接(常用连接方法,示例)
- string dbPath = Environment.CurrentDirectory + "/test.db";/*指定数据库路径 */
- using(SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))
- {
- 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[]);
- }
- }
- }
- 在web.config或者是app.config中添加如下配置,connectionstring配置节的db就是 SQLite的数据库文件,将它放在Web应用的App_Data目录,|DataDirectory|就代表这个目录的位置,
- 后面的就是文件名,剩下的就是我们使用企业库访问SQL Server是一样的了。
- <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>
- 在该工程上引入System.Data.SQLite.DLL(即wrapper),无需引入SQLite3.dll,因为前者已经包装了后者。
在代码中import下: "using System.Data.SQLite;"
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Data.SQLite;
- namespace TestSQLite
- {
- class MyCSharpSQLite
- {
- private static string connStr;
- static void Main(string[] args)
- {
- connStr = SQLiteConnectionString.GetConnectionString(".\\Data\\EasyDataBase.db");
- Console.WriteLine("SQLite Connect String is : {0}", connStr);
- //连接测试
- //testConnect(connStr);
- //执行查询
- ExecQuery("select * from customers");
- Console.ReadKey();
- }
- private static void testConnect(string connStr)
- {
- try
- {
- SQLiteConnection conn = new SQLiteConnection(connStr);
- conn.Open();
- Console.WriteLine("SQLite Connect OK.");
- }
- catch (Exception ex)
- {
- Console.WriteLine("SQLite Connect fail: {0} ", ex.Message);
- }
- }
- private static void ExecQuery(string sqlStr)
- {
- Console.WriteLine(">> Start to query the database....");
- using (SQLiteConnection conn = new SQLiteConnection(connStr))
- {
- conn.Open();
- SQLiteCommand comm = conn.CreateCommand();
- comm.CommandText = sqlStr;
- //comm.CommandType = comm.CommandText;
- using (SQLiteDataReader reader = comm.ExecuteReader())
- {
- while (reader.Read())
- {
- Console.WriteLine(reader[].ToString());
- }
- }
- }
- }
- }
- /// <summary>
- /// 生成SQLite连接字符串
- /// </summary>
- public static class SQLiteConnectionString
- {
- public static string GetConnectionString(string path)
- {
- return GetConnectionString(path, null);
- }
- public static string GetConnectionString(string path, string password)
- {
- if (string.IsNullOrEmpty(password))
- {
- return "Data Source=" + path;
- }
- else
- {
- return "Data Source=" + path + ";Password=" + password;
- }
- }
- }
- }
- 示例1
- using System;
- using System.Reflection;
- using System.IO;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Data.SQLite; //需要安装sqlite for vs
- namespace MobileTest
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- public DataSet GetData()
- {
- try
- {
- //得到数据库位置
- string dbfile = string.Format("{0}\\SqlLiteTest", Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase));
- //连接字符串
- string connStr = string.Format("Data Source={0};Password=123456", dbfile);
- SQLiteConnection conn = new SQLiteConnection(connStr);
- string sql = "SELECT Id,Name,age FROM tbl_liteTest";
- SQLiteDataAdapter slda = new SQLiteDataAdapter(sql, conn);
- DataSet ds = new DataSet();
- slda.Fill(ds);
- return ds;
- }
- catch (Exception)
- {
- throw;
- }
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- DataSet ds = GetData();
- foreach (DataRow item in ds.Tables[].Rows)
- {
- this.comboBox1.Items.Add(item["Name"].ToString());
- }
- }
- }
- }
示例2
- SQLiteConnection cnn = new SQLiteConnection();
- cnn.ConnectionString = @"Data Source=c:sqlite-3_5_0mytest.db";
- cnn.Open();
- SQLiteCommand cmd = new SQLiteCommand();
- cmd.Connection = cnn;
- cmd.CommandText = "SELECT * FROM mytable1";
- SQLiteDataAdapter da = new SQLiteDataAdapter();
- da.SelectCommand = cmd;
- DataSet ds = new DataSet();
- da.Fill(ds);
示例3
下载ADO.NET2.0 Provider for SQLite。下载binaries zip版就可以了。下载完后解压缩,可以在bin目录下找到System.Data.SQLite.DLL。在vs2008中用Add Reference功能把System.Data.SQLite.DLL加到工程里就可以了。
- string datasource = "d:/sqllite/sqlite.net/bin/test.db3";
- system.data.sqlite.sqliteconnection.createfile(datasource);
- //连接数据库
- system.data.sqlite.sqliteconnection conn = new system.data.sqlite.sqliteconnection();
- system.data.sqlite.sqliteconnectionstringbuilder connstr = new system.data.sqlite.sqliteconnectionstringbuilder();
- connstr.datasource = datasource;
- connstr.password = "admin";//设置密码,sqlite ado.net实现了数据库密码保护
- conn.connectionstring = connstr.tostring();
- conn.open();
- //创建表
- system.data.sqlite.sqlitecommand cmd = new system.data.sqlite.sqlitecommand();
- string sql = "create table test(username varchar(20),password varchar(20))";
- cmd.commandtext = sql;
- cmd.connection = conn;
- cmd.executenonquery();
- //插入数据
- sql = "insert into test values('a','b')";
- cmd.commandtext = sql;
- cmd.executenonquery();
- //取出数据
- sql = "select * from test";
- cmd.commandtext = sql;
- system.data.sqlite.sqlitedatareader reader = cmd.executereader();
- stringbuilder sb = new stringbuilder();
- while (reader.read())
- {
- sb.append("username:").append(reader.getstring()).append("\n")
- .append("password:").append(reader.getstring());
- }
- console.writeline(sb.tostring());
- console.read();
2.C#对SQLLite的DML操作示例
- /*这里新建了一个HyData目录存放数据库*/
- string connStr = @"Data Source=" + System.Environment.CurrentDirectory + @"\HyData\HyData.db3;Initial Catalog=sqlite;Integrated Security=True;Max Pool Size=10";
- /*执行Sql语句
- 创建一个表: ExecuteSql("create table HyTest(TestID TEXT)");
- 插入些数据: ExecuteSql("insert into HyTest(TestID) values('1001')");
- */
- private void ExecuteSql(string sqlStr)
- {
- using (DbConnection conn = new SQLiteConnection(connStr))
- {
- conn.Open();
- DbCommand comm = conn.CreateCommand();
- comm.CommandText = sqlStr;
- comm.CommandType = CommandType.Text;
- comm.ExecuteNonQuery();
- }
- }
- /*执行查询
- ExecQuery("select * from HyTest");
- */
- private void ExecQuery(string sqlStr)
- {
- using (DbConnection conn = new SQLiteConnection(connStr))
- {
- conn.Open();
- DbCommand comm = conn.CreateCommand();
- comm.CommandText = sqlStr;
- comm.CommandType = CommandType.Text;
- using (IDataReader reader = comm.ExecuteReader())
- {
- while (reader.Read())
- {
- MessageBox.Show(reader[].ToString());
- }
- }
- }
- }
- /* 执行查询返回DataSet */
- private DataSet ExecDataSet(string sqlStr)
- {
- using (SQLiteConnection conn = new SQLiteConnection(connStr))
- {
- conn.Open();
- SQLiteCommand cmd = conn.CreateCommand();
- cmd.CommandText = sqlStr;
- cmd.CommandType = CommandType.Text;
- SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
- DataSet ds = new DataSet();
- da.Fill(ds);
- return ds;
- }
- }
- System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection(@"Data Source=d:\maindb.db;Version=3");
- string datasource = "d:\\maindb.db";
- //连接数据库
- System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection();
- System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
- connstr.DataSource = datasource;
- conn.ConnectionString = connstr.ToString();
- conn.Open();
- System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
- //取出数据
- string sql = "SELECT * FROM Source";
- cmd.CommandText = sql;
- System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
- StringBuilder sb = new StringBuilder();
- while (reader.Read())
- {
- sb.Append("ID:").Append(reader.GetString()).Append("\n")
- .Append("NAME:").Append(reader.GetString());
- }
- MessageBox.Show(sb.ToString());
3.对SQLLite DML操作类封装
使用C#对SQLLite进行操作的更多相关文章
- (转)SQLLite数据操作
原文:http://dreamboy.blog.51cto.com/3180937/722352 SQLLite数据操作 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存 ...
- 09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider
1. 编写ContentPrivider提供者的Android应用 清单文件 <?xml version="1.0" encoding="utf-8"? ...
- Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析
前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增.删.查.改) 目录 1. SQLite数据库介绍 SQLite是Android内置的 ...
- flutter插件汇总
audio_recorder: any #录音.播放 flutter_sound: ^#录音 dropdown_menu: ^#下拉菜单 simple_permissions:#权限获取 easy_a ...
- flutter 常用插件
audio_recorder: any #录音.播放 flutter_sound: ^1.1.5#录音 dropdown_menu: ^1.1.0#下拉菜单 simple_permissions:#权 ...
- 奔跑吧DKY——团队Scrum冲刺阶段-Day 7
今日完成任务 谭鑫:将人物图添加到游戏以及商店界面中,实现商店的选择换装功能 黄宇塘:制作人物图.背景图 赵晓海:阅读所有代码测试所有功能,美化部分界面 方艺雯:为商店界面及关于界面添加必要文字说明 ...
- python笔记-19 javascript补充、web框架、django基础
一.JavaScript的补充 1 正则表达式 1.1 test的使用 test 测试是否符合条件 返回true or false 1.2 exec的使用 exec 从字符串中截取匹配的字符 1.3 ...
- 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...
- Flutter-常用插件庫
alibaba/flutter_boost:路由 install_plugin 2.0.0#app下载更新插件 audio_recorder: any #录音.播放 flutter_sound: ^1 ...
随机推荐
- ASP.NET复合控件
① DropDownList 下拉列表 会被编译为select option ps.name 服务端常用,id 客户端常用 一般用法: 一.将数据放进去 方法一:同WinForm相同,给定数据源,然后 ...
- cookie 二:
本篇随笔从cookie的入门开始,介绍了cookie的设置获取和移除,还有一些小的应用案例:一.设置cookie <script> //设置cookie:function setCooki ...
- Hadoop技术内幕-第一章 阅读原代码前的准备
1.1 源代码学习环境 1.1.1 基础软件的下载 JDK-http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...
- MVC5 + EF6 入门完整教程二:从前端的UI开始
从前端的UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,Vie ...
- JSP显示不完全问题
这个问题出现之后其实有点让我手足无措,因为根本不知道原因出在哪儿. 因为出现这个问题之后修改过一次代码,所以我以为是因为这次修改出现的问题. 但细想之下,这次的修改根本没有涉及到任何有关这方面的东西. ...
- [原创]C#按比例缩放窗体控件及字体
按照比例缩放窗体控件及字体,如需等比例缩放,只需将x,y的比例设置成相同即可. 为了减小误差,建议使用原始尺寸来计算比例. private float X, Y; private bool b = f ...
- MYSQL 5.6中禁用INNODB引擎
并不是所有人都需要INNODB引擎,虽然它弥补了MYSQL缺乏事务支持的毛病,但是它的磁盘性能一直是让人比较担忧的.另外比较老的PHP系统,大多是采用MYISAM引擎在MYSQL建表,似乎INNODB ...
- WeX5 快速开发平台 V3.6 正式版发布
WeX5 V3.6 正式版核心特性:一.打包特性增强: 1- 提供多WebView选择,引入腾讯X5引擎,可自动适配移动设备环境进行切换,使通过X5打包生成的App具备更高的兼容性及更小的文件尺寸: ...
- supervisor安装配置与使用
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...
- OD调试篇6--对一些真正的小程序进行一点点的修改
先打开这个程序看看,提醒你这是一个未注册版本的软件.会发现只能添加4个联系人,这显然是我不想看见的,于是我要对这个程序进行一些修改,嘿嘿... 通过OD载入这个程序 有一些(SEH)也就是异常,我们可 ...