转载请注明出处: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数据库的更多相关文章

  1. Python操作SQLite数据库的方法详解

    Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...

  2. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

  3. C#操作SQLite数据库增、删、改、查 欢迎转载

    C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...

  4. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  5. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  6. EF6操作Sqlite数据库的项目兼容性问题

    vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白)   但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...

  7. EF操作sqlite数据库时的项目兼容性问题

    问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...

  8. JDBC访问及操作SQLite数据库

    SQLite 是一个开源的嵌入式关系数据库,其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保SQLite的二进 ...

  9. Android中操作SQLite数据库

    我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...

随机推荐

  1. 怎么修改mysql中user表的密码????

  2. 【2017集美大学1412软工实践_助教博客】团队作业9——测试与发布(Beta版本)

    题目 团队作业9--测试与发布(Beta版本)(http://www.cnblogs.com/happyzm/p/6917253.html) 团队作业9-1 测试与发布成绩 分值 1 0.5 0.5 ...

  3. 第二次项目冲刺(Beta阶段)5.20

    1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况,心得分享以及困难分析. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #42文件分类改 ...

  4. 201521123061 《Java程序设计》第十四周学习总结

    201521123061 <Java程序设计>第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据 ...

  5. 201521123050《Java程序设计》第2周学习总结

    本周学习总结 (1)掌握各种数据类型的使用 基本类型 整数类型(byte,short,int,long,char) 浮点类型(float,double) boolean类型(true, false) ...

  6. 201521145048《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  7. java 课程设计 购物车系统 个人

    Q1.团队课程设计博客链接 团队博客 Q2.个人负责模块或任务说明 我主要负责main函数的编写和系统中瞎看功能代码的编写. Q3.自己的代码提交记录截图 main函数代码如下: public sta ...

  8. 201521123122 《java程序设计》第十周学习总结

    ## 201521123122 <java程序设计>第十周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次P ...

  9. 控制结构(2) 卫语句(guard clause)

    // 上一篇:分枝/叶子(branch/leaf) // 下一篇:状态机(state machine) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 典型代码: 同步版本 f ...

  10. Python学习笔记005_文件_OS_模块_pickle

    >>> >>> # 文件 open()方法是打开文件,它有很多参数,第一个文件名是必须的(带路径)>>> >>> f = ope ...