(图文实例)用VB.net操作SQLite数据库
转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/)
环境:
Visual Studio 社区版 64位 Windows 7系统 新建的解决方案基于.Net 4.5.0.0
步骤:
1.下载安装 System.Data.SQLite
主页:http://system.data.sqlite.org/index.html
因为我是64位win7,所以下载的是64位的版本,下载地址(64位):
http://system.data.sqlite.org/blobs/1.0.105.2/sqlite-netFx45-setup-x64-2012-1.0.105.2.exe
默认安装路径是:C:\Program Files\System.Data.SQLite
2.用Vb.net新建一个解决方案,基于.net 4.5.0.0
然后放置一个DataGridView,一个Button,属性均默认。

3. 添加dll
在“解决方案管理器”中,找到工程名称(不是解决方案名称),右键弹出菜单,选择:添加-》引用
然后按图示操作:

4. 输入代码
Imports System.Data.SQLite
Public Class Form1
Dim conn As SQLiteConnection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If System.IO.File.Exists("test.db3") = True Then
System.IO.File.Delete("test.db3")
End If
SQLiteConnection.CreateFile("test.db3")
conn = New SQLiteConnection("Data Source=test.db3;Pooling=true;FailIfMissing=false")
If conn.State <> ConnectionState.Open Then
conn.Open()
MsgBox("打开成功!")
End If
Dim cmd As New SQLiteCommand
cmd.Connection = conn
cmd.CommandText = "CREATE TABLE Test (ID INTEGER PRIMARY KEY,TestName VARCHAR(500),TestTime DateTime,Operator VARCHAR(100))"
Dim result As Integer = cmd.ExecuteNonQuery()
Then
MsgBox("成功")
Else
MsgBox("失败")
End If
cmd = conn.CreateCommand()
cmd.CommandText = "insert into Test(TestName,TestTime,Operator)values(@Name,@TestTime,@Operator)"
cmd.Parameters.Add("@Name", Data.DbType.String).Value = "动静"
cmd.Parameters.Add("@TestTime", Data.DbType.DateTime).Value = Now()
cmd.Parameters.Add("@Operator", Data.DbType.String).Value = "peer"
result = cmd.ExecuteNonQuery()
Then
MsgBox("插入成功")
End If
SelectShowInfo()
'
cmd = conn.CreateCommand()
cmd.CommandText = "update Test set TestName='动静1'"
result = cmd.ExecuteNonQuery()
Then
MsgBox("更新成功")
End If
SelectShowInfo()
'
cmd = conn.CreateCommand()
cmd.CommandText = "delete from Test"
result = cmd.ExecuteNonQuery()
Then
MsgBox("删除成功")
End If
SelectShowInfo()
cmd.Dispose()
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Sub
Public Sub SelectShowInfo()
Dim sa As New SQLiteDataAdapter("select * from Test", conn)
Dim ds As New System.Data.DataSet
sa.Fill(ds, "Test")
Dim mytable As New System.Data.DataTable
mytable = ds.Tables("Test")
Me.DataGridView1.DataSource = mytable
Me.DataGridView1.Refresh()
End Sub
End Class
5.运行,单击 Button1,出现异常:
System.DllNotFoundException:“无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。
如图:

解决方法:
将C:\Program Files\System.Data.SQLite\2012\bin中的SQLite.Interop.dll和SQLite.Interop.pdb拷贝到工程的debug目录。
6.重新运行程序,再次出错:
System.BadImageFormatException:“试图加载格式不正确的程序。
如图:

明明是一个正常的64位平台的dll文件,为什么说格式不正确呢?
原来,问题出在visual studio的解决方案平台上,默认的是“Any CPU”

我们需要新建一个64位的平台:

并记得把SQLite.Interop.dll和SQLite.Interop.pdb拷贝到工程的bin\x64\debug目录,不然又提示dll找不到了。
7.再次重新运行程序,可以正常的打开数据库,而且成功的插入、修改、删除记录。


(完)
转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/)
(图文实例)用VB.net操作SQLite数据库的更多相关文章
- Python操作SQLite数据库的方法详解
Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...
- UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...
- C#操作SQLite数据库增、删、改、查 欢迎转载
C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- EF6操作Sqlite数据库的项目兼容性问题
vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白) 但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...
- EF操作sqlite数据库时的项目兼容性问题
问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...
- JDBC访问及操作SQLite数据库
SQLite 是一个开源的嵌入式关系数据库,其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保SQLite的二进 ...
- Android中操作SQLite数据库
我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...
随机推荐
- 字符编码笔记:ASCII,Unicode和UTF-8(转)
字符编码笔记:ASCII,Unicode和UTF-8 作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个 ...
- MITNIK ATTACK
Https 443 http 80 TCP/IP 协议栈:将数据封装包头 传输层报头 Ack回复确认位 FIN结束位 SIN 开始位 RST 重置位 Seq 序号位 网络层报头 目的地址 原地址 报文 ...
- 软件工程(GZSD2015)学生博客列表
2015年贵州师范大学软件工程课程学生博客列表 陈小丽 郑倩 唐洁 周娟 李利思 肖俊 罗文豪 周静 徐明艳 毛涛 邓洪虹 岳庆 李盼 安坤 何亚 涂江凤 张义平 杨明颢 杨家堂 胡贵玲 寿克霞 吴明 ...
- 【Alpha】第七次Daily Scrum Meeting
GIT 一.今日站立式会议照片 二.会议内容 1.讨论送礼物的方法和对象,使功能更加完善. 2.对于程序还存在的问题提出自己的看法,尽量让功能更加的饱满. 三.燃尽图 四.遇到的困难 能 ...
- Quartz2.2.x官方教程
零.Quartz是什么?能干什么? Quartz是一个开源的任务调度框架.基于定时.定期的策略来执行任务是它的核心功能,比如x年x月的每个星期五上午8点到9点,每隔10分钟执行1次.Quartz有3个 ...
- 201521123024《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 注意conve ...
- Java 第七周总结
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 我们知道ArrayList是允许重复的,有序的元素的集合,但当我们想用它来放 ...
- 201521123026 《Java程序设计》第4周学习总结
1. 本章学习总结 尝试使用思维导图总结有关继承的知识点 使用常规方法总结其他上课内容 1.类的重写:在子类中重写的方法需要和父类被重写的方法具有相同的方法名.参数列表以及返回值类型.当子类重写父类的 ...
- 201521123113《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- SharePoint备份文件
stp文件:SharePoint的.stp文件 在做一个和SharePoint有关的项目时,由于对SharePoint的unfamiliar,所以客户发了几个后缀为.stp的文件将我纳闷了半天,不 ...