高效查詢數據庫的 VB.NET SQL 示例
VB.NET 提供了一種簡化的數據庫操作方法和強大的框架。利用它的強大功能,您可以快速、輕鬆地獲取相關信息。
檢查演示用於執行 SQL 查詢的 VB.NET 實現的說明性應用程序,並發現優化數據採集的策略,使其既高效又資源豐富。
設置本地 SQL Server
首先,建議建立一個 SQL 服務器,以便按順序檢查每個組件。後續插圖顯示基於 Windows 的平台;然而,對於那些使用 Linux 等替代操作系統並使用不同 SQL 服務器的人來說,沒有理由擔心,因為基本原則將繼續存在。
由於其簡單的性質並且不需要任何形式的設置或配置,SQLite 成為數據庫管理系統新手的理想選擇。
要啟動該過程,請在文件系統上建立一個新目錄,然後訪問命令提示符界面並導航到終端內的指定位置。利用後續步驟執行指令,生成使用 Visual Basic.NET 作為主要開發編碼語言的全新.NET 項目:
dotnet new console -lang VB -o MyVBApp
為了將 SQLite 庫合併到 Visual Basic.NET 項目中,您應該使用 NuGet,它是.NET 平台廣泛使用的包管理系統。為此,請在終端或集成開發環境 (IDE) 中執行以下命令:
dotnet add package System.Data.SQLite
一旦合併了 SQLite,建立本地數據庫就變成了一個簡單的過程。
說明性實例的完整源代碼存檔在該項目的綜合數字存儲庫中,可在稱為 GitHub 存儲庫的協作平台上訪問和檢查。
請獲取“InitializeDatabase.vb”文件,該文件位於我們項目的存儲庫中。該特定文件提供了建立數據庫所需的配置。仔細閱讀其內容,您會發現一系列用戶配置文件和相關的地理數據,可以作為您自己的有用模板。
請通過合併建議的更改、保留原始含義並保持正式語氣來修改提供的代碼片段。
Module Program
Sub Main(args As String())
DatabaseInitializer.InitializeDb()
End Sub
End Module
在執行這個特定的軟件應用程序時,我們應該觀察到名為“mydatabase.db”的不同文件的生成。該文件代表一個基本的關係數據庫,作為後續演示的基礎。
在 VB.NET 中使用 SQL 建立數據庫連接
為了促進 SQLite 在 Visual Basic.NET 應用程序中的集成,必須簡單輕鬆地處理該過程。因此,應該導航到 Program.vb 文件並刪除其當前內容。這個特定的文件代表了該項目的基本方面,作為其核心組件。
可以通過在代碼中使用以下語句來連接到“mydatabase.db”數據庫文件:
Dim connectionString As String = "Data Source=mydatabase.db;Version=3;"
數據源用於指定存放數據庫的特定文件,如果這樣的文件尚不存在,SQLite 將在啟動與系統的連接時自動生成一個文件。
一旦定義了“SQLiteConnection”對象,在與數據庫連接交互時使用“Using”語句就非常重要,以防止執行過程中可能出現的任何可能的資源洩漏或死鎖問題。
Using conn As New SQLiteConnection(connectionString)
conn.Open()
' Database operations go here
End Using
Utilizing 語句保證連接將在其操作結束時無縫終止。
Program.vb 文件的最終版本可能類似於以下格式:
Imports System
Imports System.Data.SQLite
Module Program
Sub Main(args As String())
Dim connectionString As String = "Data Source=mydatabase.db;Version=3;"
Try
Using conn As New SQLiteConnection(connectionString)
conn.Open()
Console.WriteLine("Successfully connected to the database!")
'You can perform database operations here.
End Using
Catch ex As SQLiteException
Console.WriteLine("Error: " & ex.Message)
End Try
End Sub
End Module
該程序旨在與“mydatabase.db”數據庫建立連接,並在成功建立連接後顯示成功通知。如果在此過程中出現任何錯誤,程序會將相關信息打印到控制台以供進一步分析。
如何獲取數據並將其加載到數組中
使用 SELECT SQL 命令對於從關係數據庫管理系統 (RDBMS)(例如 MySQL 或 PostgreSQL)檢索信息至關重要。假設 RDBMS 中有一個名為“用戶”的表格實體,其中包含具有各種屬性的記錄。為了從“Users”表的每一行中提取“Name”列的值,必須相應地構建 SELECT 語句。
SELECT Name FROM Users
通過在 Program.vb 模塊中合併以下代碼片段,可以從數據庫中提取信息並將其存儲在集合中:
Dim query As String = "SELECT Name FROM Users"
Dim names As New List(Of String)()
Using conn As New SQLiteConnection(connectionString)
conn.Open()
Using cmd As New SQLiteCommand(query, conn)
Using reader As SQLiteDataReader = cmd.ExecuteReader()
While reader.Read()
names.Add(reader("Name").ToString())
End While
End Using
End Using
End Using
' Now the 'names' list is full of users' names.
' You can convert this list to an array if you want:
Dim namesArray() As String = names.ToArray()
' Print array content for testing purposes
For Each name In namesArray
Console.WriteLine(name)
Next
您將觀察到命令提示符中顯示的一系列條目,這些條目與關係模式中存儲的數據相對應。
給定的代碼採用了列表數據結構,該結構在結束時轉換為數組之前具有可以動態擴展的容量。當檢索的記錄的預期數量仍然不確定時,這種實現方式被證明特別有利。
如何使用 INSERT 將數據添加到數據庫
INSERT INTO 語句用於將新信息合併到數據庫中。為了說明這一點,讓我們檢查一下“Users”表的場景,該表擁有標識為“Name”和“Country”的兩列。
要使用結構化查詢語言 (SQL) 在數據庫中創建新用戶,可以使用以下基本查詢:
INSERT INTO Users (Name, Country) VALUES ('Fatih', 'TR')
為了利用此查詢將新用戶合併到數據庫中,請修改 Program.vb 文檔,如下所示:
Dim query As String = $"INSERT INTO Users (Name, Country) VALUES ('{name}', '{country}')"
Using conn As New SQLiteConnection(connectionString)
conn.Open()
Using cmd As New SQLiteCommand(query, conn)
cmd.ExecuteNonQuery()
End Using
End Using
Console.WriteLine($"{name} has been successfully added to the database!")
在本例中,採用了涉及字符串插值的基本方法來構建查詢;然而,在實際軟件架構的範圍內應該避免這種方法,因為它容易受到基於 SQL 注入的安全漏洞的影響。更好的做法是實施參數化查詢,這不僅可以增強數據庫操作期間的安全性,還可以提高數據庫操作的效率。
參數化查詢使用佔位符元素代替直接字符串連接,將數據合併到 SQL 語句中。通過採用這種方法,可以有效地緩解由於不正確構建的 SQL 查詢而可能產生的許多潛在安全漏洞。
Dim query As String = "INSERT INTO Users (Name, Country) VALUES (@Name, @Country)"
'...
cmd.Parameters.AddWithValue("@Name", userName)
cmd.Parameters.AddWithValue("@Country", userCountry)
在 VB.Net 中使用數據庫的任何其他技巧
最初,VB.NET 中的數據庫操作可能看起來令人生畏;然而,通過堅持一些基本原則和指導方針,人們可以很容易地熟練掌握這些基本概念。
利用參數化查詢是防範數據庫系統中潛在安全威脅的有效方法。
一旦檢索或更新數據的過程完成,確保正確關閉所有數據庫連接至關重要。
確保定期更新和重組您的數據庫,以確保隨著數據模型隨時間的發展而獲得最佳性能。
請確保創建冗余文件,作為發生意外情況時的預防措施。
與任何技術一樣,數據庫也在不斷發展。軟件得到更新,新工具出現,我們發現更好的做事方式。保持信息靈通和更新是個好主意。有些工具充當中介,例如實體框架,使編寫數據庫相關代碼變得更容易。
如何進一步推進您的 VB.NET 之旅
VB.NET 與廣泛的 Microsoft 生態系統有著密切的聯繫,提供了無與倫比的穩定性和易用性組合。為了充分了解其功能,謹慎的做法是從 Microsoft 提供的權威資源開始。隨後,深入研究經驗豐富的專業人士經常光顧的在線教程、討論線程和網絡,他們慷慨地傳授他們的智慧和專業知識。
事實上,所有專業人士在其職業生涯的某個階段都曾是新手。通過堅持不懈的努力、真正的興趣和適當的學習材料,一個人最終可以精通 VB.NET。擁抱探索、提出疑問,最重要的是享受發現新知識的旅程,這一點至關重要。