在 VB.NET 中进行数据库操作,通常使用 ADO.NET(ActiveX Data Objects for .NET)来与数据库进行交互。ADO.NET 提供了一个统一的接口,允许开发人员连接、操作和管理数据。以下是一个基础的 VB.NET 数据库操作源码示例,包括常见的 CRUD(创建、读取、更新和删除)操作,使用的是 SQL Server 数据库。
1. 准备工作
- 数据库:假设我们已经有一个名为
TestDB
的数据库,其中有一个表Users
,该表结构如下:CREATE TABLE Users ( ID INT PRIMARY KEY IDENTITY(1,1), Name VARCHAR(100), Age INT );
- 连接字符串:为了连接到数据库,必须配置连接字符串。这里使用的是 SQL Server 数据库的连接字符串:
Server=your_server_name;Database=TestDB;Integrated Security=True;
2. VB.NET ADO.NET 操作示例
导入命名空间
首先,导入 System.Data.SqlClient
命名空间,它包含了与 SQL Server 数据库交互的类。
Imports System.Data.SqlClient
3. 1. 数据库连接与打开
在进行数据库操作之前,需要先建立数据库连接:
Dim connectionString As String = "Server=your_server_name;Database=TestDB;Integrated Security=True;"
Dim connection As New SqlConnection(connectionString)
Try
connection.Open()
MessageBox.Show("连接成功!")
Catch ex As Exception
MessageBox.Show("连接失败: " & ex.Message)
End Try
4. 2. 创建(插入数据)
插入一条新记录
使用 INSERT
语句向数据库中插入数据:
Dim query As String = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@Name", "John Doe")
command.Parameters.AddWithValue("@Age", 30)
Try
command.ExecuteNonQuery() ' 执行 SQL 查询
MessageBox.Show("插入成功!")
Catch ex As Exception
MessageBox.Show("插入失败: " & ex.Message)
End Try
5. 3. 读取(查询数据)
读取数据并显示在 DataGridView
我们可以通过 SELECT
查询语句从数据库中获取数据,并将其显示在 DataGridView
控件中:
Dim query As String = "SELECT * FROM Users"
Dim command As New SqlCommand(query, connection)
Dim adapter As New SqlDataAdapter(command)
Dim dt As New DataTable()
Try
adapter.Fill(dt) ' 填充 DataTable
DataGridView1.DataSource = dt ' 将查询结果显示在 DataGridView
Catch ex As Exception
MessageBox.Show("查询失败: " & ex.Message)
End Try
6. 4. 更新(修改数据)
更新记录
使用 UPDATE
语句更新数据库中的数据:
Dim query As String = "UPDATE Users SET Name = @Name, Age = @Age WHERE ID = @ID"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@Name", "Jane Doe")
command.Parameters.AddWithValue("@Age", 25)
command.Parameters.AddWithValue("@ID", 1) ' 假设要更新 ID 为 1 的用户
Try
command.ExecuteNonQuery() ' 执行更新操作
MessageBox.Show("更新成功!")
Catch ex As Exception
MessageBox.Show("更新失败: " & ex.Message)
End Try
7. 5. 删除(删除数据)
删除记录
使用 DELETE
语句删除数据库中的记录:
Dim query As String = "DELETE FROM Users WHERE ID = @ID"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@ID", 1) ' 假设要删除 ID 为 1 的用户
Try
command.ExecuteNonQuery() ' 执行删除操作
MessageBox.Show("删除成功!")
Catch ex As Exception
MessageBox.Show("删除失败: " & ex.Message)
End Try
8. 6. 关闭连接
每次操作完毕后,都应该关闭数据库连接:
connection.Close()
MessageBox.Show("连接已关闭")
9. 完整示例
结合上述的增、删、改、查操作,下面是一个简单的 VB.NET 示例,演示如何与数据库进行基本的交互。
Imports System.Data.SqlClient
Public Class Form1
Dim connectionString As String = "Server=your_server_name;Database=TestDB;Integrated Security=True;"
Dim connection As New SqlConnection(connectionString)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 打开连接
Try
connection.Open()
MessageBox.Show("连接成功!")
Catch ex As Exception
MessageBox.Show("连接失败: " & ex.Message)
End Try
End Sub
' 插入数据
Private Sub InsertData()
Dim query As String = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@Name", "John Doe")
command.Parameters.AddWithValue("@Age", 30)
Try
command.ExecuteNonQuery()
MessageBox.Show("插入成功!")
Catch ex As Exception
MessageBox.Show("插入失败: " & ex.Message)
End Try
End Sub
' 查询数据
Private Sub GetData()
Dim query As String = "SELECT * FROM Users"
Dim command As New SqlCommand(query, connection)
Dim adapter As New SqlDataAdapter(command)
Dim dt As New DataTable()
Try
adapter.Fill(dt)
DataGridView1.DataSource = dt
Catch ex As Exception
MessageBox.Show("查询失败: " & ex.Message)
End Try
End Sub
' 更新数据
Private Sub UpdateData()
Dim query As String = "UPDATE Users SET Name = @Name, Age = @Age WHERE ID = @ID"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@Name", "Jane Doe")
command.Parameters.AddWithValue("@Age", 25)
command.Parameters.AddWithValue("@ID", 1)
Try
command.ExecuteNonQuery()
MessageBox.Show("更新成功!")
Catch ex As Exception
MessageBox.Show("更新失败: " & ex.Message)
End Try
End Sub
' 删除数据
Private Sub DeleteData()
Dim query As String = "DELETE FROM Users WHERE ID = @ID"
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@ID", 1)
Try
command.ExecuteNonQuery()
MessageBox.Show("删除成功!")
Catch ex As Exception
MessageBox.Show("删除失败: " & ex.Message)
End Try
End Sub
' 关闭连接
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
connection.Close()
MessageBox.Show("连接已关闭")
End Sub
End Class
10. 总结
- 建立数据库连接:使用
SqlConnection
连接到数据库。 - 执行命令:使用
SqlCommand
执行INSERT
、SELECT
、UPDATE
和DELETE
操作。 - 处理异常:通过
Try...Catch
块处理数据库操作中的错误。 - 关闭连接:在完成数据库操作后,关闭连接。
通过上述示例,你可以更好地理解如何使用 ADO.NET 在 VB.NET 中执行基本的数据库操作。在实际项目中,通常还会封装成更具通用性的数据库访问类,或者使用 Entity Framework 这样的 ORM 框架进行更高级的数据库操作。
发表回复