1.SQLite安装
SQlite官网:http://www.sqlite.org/download.html

找到以下截图中内容

第一个解压之后是sqlite3.exe,第二个解压之后是sqlite3.dll和sqlite3.def文件,第三个是sqlite3_analyzer(暂时没用到)

可将sqlite3.exe复制到C:\Windows\System32\下,这样一来可以从任何目录下运行CLP(SQLite CLP是使用和管理SQLite数据库最常用的工具),

打开命令行输入sqlite3回车,出现如下截图

2.使用SQLite创建数据库及数据表
重新进入命令行输入sqlite3 newsql_learn.db创建newsql_learn数据库

然后就是SQL语句了

其中.tables是查看数据库newsql_learn.db中所有的数据表,mytable是另一个已建好的数据表

在http://blog.csdn.net/byxdaz/article/details/5846023还有相关SQL介绍

3.要在VS2010中使用,那么需要添加SQLite的引用
网上有关于System.Data.Sqlite 下载及安装的注意事项:http://blog.csdn.net/norsd/article/details/6795695

本人也还不能确定哪个版本,自己的电脑是win8 64位,可是装的SQLite只有32位,VS2010目标生成CPU为32位,(之前整的Oracle是64位,默认目标生成为Any CPU,改成32位的Oracle出错,只好两者分开测试学习了),.NET 4.0版本

官网上下载System.Data.Sqlite:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

其实我是一个一个试的····最后是从上往下算第二个,sqlite-netFx40-setup-x86-2010-1.0.97.0.exe,哎,擦TM

下载完,双击安装,默认路径是C:\Program Files (x86)\System.Data.SQLite

安装完到程序中点击添加引用(Project(项目)-->Add reference..(添加引用..)-->.Net(框架))

若你的左侧列中有System.Data.SQLite恭喜你,你不用纠结了,就是那个了,选中点击确定,要是没有,可以点击右下角的浏览(不同VS版本,可能浏览的位置不同),进入C:\Program Files (x86)\System.Data.SQLite\2010\bin\找到System.Data.SQLite.dll点击确定

4.开始调用SQLite
命名空间添加

using System.Data;
using System.Data.SQLite;
主函数中添加

string connectString = @"Data Source=F:\newsql_learn.db;Pooling=true;FailIfMissing=false";
SQLiteConnection conn = new SQLiteConnection(connectString); //新建一个连接
conn.Open(); //打开连接,如果sqlite.db存在就正常打开,如果不存在则创建一个SQLite.db文件
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from table1"; //数据库中要事先有个orders表
cmd.CommandType = CommandType.Text;
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
Console.WriteLine(reader[0].ToString());
}
注:这里出现了错误,莫名其妙的错误,系统显示没有找到table1数据表,可是利用SQLite命名行进行查找却可以找到table1及该数据表下的所有数据,无奈之下下载了SQLiteBrowser,可是安装之后发现数据库newsql_learn中没有table1,只是有之前创建的mytable,这下更郁闷了,什么情况,也就是说在SQLite3.exe中可以发现table1表,在调用该表以及SQLiteBrowser中都没有发现该表························
难道是创建的路径不正确,他们访问的数据库名字虽然全都是newsql_learn.db可是更本不是一个数据库?于是整个电脑搜索newsql_learn.db,果然,

5.利用代码创建数据表及访问显示表中数据,以下代码主要参照C#使用System.Data.SQLite操作SQLite原文地址http://hzy3774.iteye.com/blog/1691932

<span style="font-size:18px;">  //第一步先创建数据表</span>
<span style="font-size:18px;"> string dbPath = Environment.CurrentDirectory + "/test.db";//指定数据库路径 位于程序根目录下
using (SQLiteConnection conn = new SQLiteConnection("Data Source =" + dbPath))//创建连接
{
conn.Open();//打开连接
string sql = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";//创建数据表语句
SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conn);
cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表

using (SQLiteTransaction tran = conn.BeginTransaction())//实例化一个事务 使用事务操作提高效率
{
for (int i = 0; i < 100; i++)
{
SQLiteCommand cmd = new SQLiteCommand(conn);//实例化SQL命令
cmd.Transaction = tran;
cmd.CommandText = "insert into student values(@id, @name, @sex)";//设置带参SQL语句
cmd.Parameters.AddRange(new[] {//添加参数
new SQLiteParameter("@id", i),
new SQLiteParameter("@name", "中国人"),
new SQLiteParameter("@sex", "男")
});
cmd.ExecuteNonQuery();//执行查询
}
tran.Commit();//提交
}
}
 </span>
<span style="font-size:18px;"> //第二步,创建第二个数据表</span>
<span style="font-size:18px;"> SQLiteConnection conn1 = null;
string dbPath2 = "Data Source =" + Environment.CurrentDirectory + "/test.db";
conn1 = new SQLiteConnection(dbPath2);//创建数据库实例,指定文件位置
conn1.Open();//打开数据库,若文件不存在会自动创建

//创建第二张表
string sql1 = "CREATE TABLE IF NOT EXISTS student2(id integer, name varchar(20));";//建表语句
SQLiteCommand cmdCreateTable2 = new SQLiteCommand(sql1, conn1);
cmdCreateTable2.ExecuteNonQuery();//如果表不存在,创建数据表
SQLiteCommand cmdInsert = new SQLiteCommand(conn1);
cmdInsert.CommandText = "INSERT INTO student2 VALUES(1, '小红')";//插入几条数据
cmdInsert.ExecuteNonQuery();
cmdInsert.CommandText = "INSERT INTO student2 VALUES(2, '小李')";
cmdInsert.ExecuteNonQuery();
cmdInsert.CommandText = "INSERT INTO student2 VALUES(3, '小明')";
cmdInsert.ExecuteNonQuery();

</span>
<span style="font-size:18px;"> //第三步查询数据</span>
<span style="font-size:18px;"> string sql2 = "select * from student";
SQLiteCommand cmdQ = new SQLiteCommand(sql2, conn1);
SQLiteDataReader reader = cmdQ.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetString(2));
}

string sql3 = "select id,name from student2";
SQLiteCommand cmdQ2 = new SQLiteCommand(sql3, conn1);
SQLiteDataReader reader2 = cmdQ2.ExecuteReader();
while (reader2.Read())
{
Console.WriteLine(reader2.GetInt32(0) + " " + reader2.GetString(1) );
}
conn1.Close();</span>
O了,接下来可以在此基础上开发使用数据库的其他功能了···········
---------------------
作者:Micro_Ryan
来源:CSDN
原文:https://blog.csdn.net/micro_ryan/article/details/47147557
版权声明:本文为博主原创文章,转载请附上博文链接!

vs2010下使用sqlite的更多相关文章

  1. CxImage在VS2010下的配置

    http://blog.csdn.net/youzhuo/article/details/24601621 一.编译Cximage 1.在SourceForge上下载cximage702_full.7 ...

  2. 在VS2010下编译和使用tesseract_ocr识别验证码

    对于自动识别验证码,使用trsseract是个不错的选择,有兴趣的的朋友可以试试. 编译tesseract 官网提供了vs2008的编译说明和工程,但在vs2010下的编译时基本相同的,因此我使用的方 ...

  3. ActiveX控件的基本操作方法以及如何在VS2010下使用控件

    在此,小编就介绍下ActiveX控件的基本操作方法以及如何在VS2010下使用控件,我们以一个程序为例, (1)      打开VS2010编译器(右键以管理员身份运行,因为ActiveX需要注册), ...

  4. VS2010 下编译 cocos2d-x-2.1.4

    在VS2010 下编译 cocos2d-x-2.1.4   首先感谢 cocos2d-x 团队为我们做出这么好的跨平台框架,让我们这些码农省了很多时间,事半功倍. 里沃特最近在编译 win32 版本的 ...

  5. VS2010下创建的VB.NET项目打包发布安装包的流程

    VS2010下创建的VB.NET项目打包发布安装包的流程 参考:http://blog.csdn.net/liuyanlinglanq/article/details/8609675  关于relea ...

  6. 关于vs2010下水晶报表的使用入门

    关于vs2010下使用水晶报表了解情况记录如下: 1.首先vs2010不再自带水晶报表控件了,需要下载安装vs2010配套的水晶报表控件:CRforVS_13_0.这个控件安装很简单,基本上都选择默认 ...

  7. VS2010下MFC的串口编程

    串口通信简介 一般来说,计算机都有一个或多个串行端口,这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当解释器的角色.当字符数据从CPU发送给外设时,这些字符数据将被转换成串 ...

  8. VS2010下连接Oracle数据库的方法

    在vs2010下使用OleDB连接Oracle数据库 ——此方法不需要配置数据源. 1. 在“服务器资源管理器”中,选择“数据库连接”,右击,选择“添加连接”. 2. 出现下面的界面,并按图中选择“用 ...

  9. EMGU 2.9.X在VS2010下调试真正靠谱的配置

    emgu有多强大或者干什么的网上找资料吧.这里就说说我在2010下的配置的经历. 在网上找了很多资料,有细节到一步一步的,但我跟着弄还是没有成功.比如修改cpu,复制emgu的bin目录下某些所需文件 ...

随机推荐

  1. 深入学习C#匿名函数、委托、Lambda表达式、表达式树类型——Expression tree types

    匿名函数 匿名函数(Anonymous Function)是表示“内联”方法定义的表达式.匿名函数本身及其内部没有值或者类型,但是可以转换为兼容的委托或者表达式树类型(了解详情).匿名函数转换的计算取 ...

  2. English Time And Date

    What's the Time in English? Explanation There are two common ways of telling the time. Formal but ea ...

  3. office 2016密钥

    Office 2016 Pro Plus Retail 版激活密钥:[Key]:3XJTG-YNBMY-TBH9M-CWB2Y-YWRHH[Key]:6TCQ3-NBBJ2-RTJCM-HFRKV-G ...

  4. RoR - Creating and Modifying Table and Columns

    自动生成的id 被当作primary key来使用 timestamp method生成 created_at 与 updated_at columns create_table 和 drop_tab ...

  5. mongodb删除重复数据

    注:mongodb当前版本是3.4.3   插入六条数据:   查询存在重复的数据:   查询并循环删除重复数据:   删除语句解析: db.userInfo.aggregate([     {   ...

  6. 开源搜素引擎:Lucene、Solr、Elasticsearch、Sphinx优劣势比较

    https://blog.csdn.net/belalds/article/details/82667692 开源搜索引擎分类 1.Lucene系搜索引擎,java开发,包括: Lucene Solr ...

  7. require 和 import 区别

    我很懵逼啊  都是在引用模块,那到底用哪个? 参考:https://www.cnblogs.com/hwldyz/p/9145959.html 看来会明白一点的 首先这两个都是为了JS模块化编程使用. ...

  8. redis示例 - 限速器,计时器

    INCR INCR key 将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型,或字符串类型的值不能表示 ...

  9. c++赋值构造函数为什么返回引用类型?

    目录 0 前言 1 内置类型 2 自定义类型 3 结论 4 源码 0. 前言 c++默认赋值构造函数的返回值是引用类型,c++赋值运算符=的本意是返回左值的引用,我们重载赋值构造函数的时候,返回值是否 ...

  10. HDU 2586 How far away(dfs+邻接表)

    How far away [题目链接]How far away [题目类型]dfs+邻接表 &题意: 题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起来,接下了有m次询问,每次询问 ...