(图文实例)用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的手册,基本上都能查到,但是查有些 ...
随机推荐
- Java Object中的equals和hashCode
Java的Object对象中有两个方法比较有意思,一个是equals(),一个是hashCode(),那么这两个的作用有些同学可能还不是很清楚,那么同学们现在就进一步了解一下吧. 下面咱们写一个简单的 ...
- 201521123084 《Java程序设计》第4周学习总结
第4周作业-面向对象设计与继承 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 总结: (1)学会了如何给类和方法进行简单的注释: (2)学 ...
- 【Beta阶段】计划安排
一.新成员介绍 姓名 陈雄 学号 106 角色 前端 个人相片 二.完善功能 登录注册 记分板 排行榜 界面优化 三.新增功能 换肤(可以一试) 联网PK 分享邀请 四.团队 ...
- 201521123110 《Java程序设计》第7周学习总结
1. 本章学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...
- 201521123117 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点 2. 书面作业 Q1代码阅读:Child压缩包内源代码 1.com.parent包中Child.java文件能否编译通过?哪句会 ...
- 201521123051 《Java程序设计》 第二周学习总结
1. 本周学习总结 1.学会使用码云:学会如何将项目同步到码云中以及从码云上的项目保存到本地. 2.各数据类型的使用. 3.运算符和表达式的使用. 4.string创建之后不可在修改. 5.Java程 ...
- Java 课程设计 "Give it up"小游戏设计(个人) 201521123077
1.团队课程设计博客链接 http://www.cnblogs.com/agts/p/7067948.html 2.个人负责模块或任务说明 个人任务:实现游戏画面的制作,游戏逻辑的编写,以及一些模块与 ...
- evak购物车-课程设计(201521123034陈凯欣)
1.团队课程设计博客链接 https://i.cnblogs.com/EditPosts.aspx?postid=7047127 2.个人负责模块或任务说明 1.Java 编写商品类Goods,商品属 ...
- JavaSE集合(十)之Map
前面给大家介绍了集合家族中的Collection家族,这一篇给大家分享的是集合中的另一个家族就是Map家族.以前的时候学习Map的时候没有很认真的去学习,我觉得很多东西还是不是很清楚. 这次我将总结的 ...
- mariadb自带命令行客户端指令笔记
mysql -H 主机IP -u 用户名 -p -p表示要输密码,不要直接输了,要回车后在程序里输入 显示数据库列表: show databases; 选择XX数据库: use XX; 显示数据库里的 ...