码迷,mamicode.com
首页 > 数据库 > 详细

【图文实例】【原创】用VB.net操作SQLite数据库

时间:2017-10-14 22:34:51      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:image   系统   button   ndt   .net   测试   span   new   windows 7   

转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/)

 

环境:

Visual Studio 2017 社区版

64位 Windows 7系统

新建的解决方案基于.Net 4.5.0.0

 

步骤:

1.下载安装 System.Data.SQLite

主页:http://system.data.sqlite.org/index.html

因为我是64位win7,新建的解决方案基于.Net 4.5.0.0,所以下载的是针对64位、.net4.5的版本,下载地址:

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. 在vb.net中添加对dll的引用

在“解决方案管理器”中,找到工程名称(不是解决方案名称),右键弹出菜单,选择:添加-》引用

然后按图示操作:

技术分享

 

4. 输入测试代码

代码引用自 風雲工作室,http://blog.csdn.net/angxiao/article/details/7732018

 

 1 Imports System.Data.SQLite
 2 Public Class Form1
 3     Dim conn As SQLiteConnection
 4     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 5         If System.IO.File.Exists("test.db3") = True Then
 6             System.IO.File.Delete("test.db3")
 7         End If
 8         SQLiteConnection.CreateFile("test.db3")
 9         conn = New SQLiteConnection("Data Source=test.db3;Pooling=true;FailIfMissing=false")
10         If conn.State <> ConnectionState.Open Then
11             conn.Open()
12             MsgBox("打开成功!")
13         End If
14 
15         Dim cmd As New SQLiteCommand
16         cmd.Connection = conn
17         cmd.CommandText = "CREATE TABLE Test (ID INTEGER PRIMARY KEY,TestName VARCHAR(500),TestTime DateTime,Operator VARCHAR(100))"
18         Dim result As Integer = cmd.ExecuteNonQuery()
19         If result = 0 Then
20             MsgBox("成功")
21         Else
22             MsgBox("失败")
23         End If
24 
25         cmd = conn.CreateCommand()
26         cmd.CommandText = "insert into Test(TestName,TestTime,Operator)values(@Name,@TestTime,@Operator)"
27         cmd.Parameters.Add("@Name", Data.DbType.String).Value = "动静"
28         cmd.Parameters.Add("@TestTime", Data.DbType.DateTime).Value = Now()
29         cmd.Parameters.Add("@Operator", Data.DbType.String).Value = "peer"
30         result = cmd.ExecuteNonQuery()
31         If result <> 0 Then
32             MsgBox("插入成功")
33         End If
34         SelectShowInfo()
35 
36         37         cmd = conn.CreateCommand()
38         cmd.CommandText = "update  Test set TestName=‘动静1‘"
39         result = cmd.ExecuteNonQuery()
40         If result <> 0 Then
41             MsgBox("更新成功")
42         End If
43         SelectShowInfo()
44 
45         46 
47         cmd = conn.CreateCommand()
48         cmd.CommandText = "delete from Test"
49         result = cmd.ExecuteNonQuery()
50         If result <> 0 Then
51             MsgBox("删除成功")
52         End If
53         SelectShowInfo()
54 
55         cmd.Dispose()
56 
57         If conn.State = ConnectionState.Open Then
58             conn.Close()
59         End If
60     End Sub
61 
62     Public Sub SelectShowInfo()
63         Dim sa As New SQLiteDataAdapter("select * from Test", conn)
64         Dim ds As New System.Data.DataSet
65         sa.Fill(ds, "Test")
66         Dim mytable As New System.Data.DataTable
67         mytable = ds.Tables("Test")
68         Me.DataGridView1.DataSource = mytable
69         Me.DataGridView1.Refresh()
70     End Sub
71 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数据库

标签:image   系统   button   ndt   .net   测试   span   new   windows 7   

原文地址:http://www.cnblogs.com/hatemath/p/7668553.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!