標籤: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 Then11 conn.Open()12 MsgBox("開啟成功!")13 End If14 15 Dim cmd As New SQLiteCommand16 cmd.Connection = conn17 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 Then20 MsgBox("成功")21 Else22 MsgBox("失敗")23 End If24 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 Then32 MsgBox("插入成功")33 End If34 SelectShowInfo()35 36 ‘37 cmd = conn.CreateCommand()38 cmd.CommandText = "update Test set TestName=‘動靜1‘"39 result = cmd.ExecuteNonQuery()40 If result <> 0 Then41 MsgBox("更新成功")42 End If43 SelectShowInfo()44 45 ‘46 47 cmd = conn.CreateCommand()48 cmd.CommandText = "delete from Test"49 result = cmd.ExecuteNonQuery()50 If result <> 0 Then51 MsgBox("刪除成功")52 End If53 SelectShowInfo()54 55 cmd.Dispose()56 57 If conn.State = ConnectionState.Open Then58 conn.Close()59 End If60 End Sub61 62 Public Sub SelectShowInfo()63 Dim sa As New SQLiteDataAdapter("select * from Test", conn)64 Dim ds As New System.Data.DataSet65 sa.Fill(ds, "Test")66 Dim mytable As New System.Data.DataTable67 mytable = ds.Tables("Test")68 Me.DataGridView1.DataSource = mytable69 Me.DataGridView1.Refresh()70 End Sub71 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資料庫