转载请注明出处: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/)