在 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 执行 INSERTSELECTUPDATE 和 DELETE 操作。
  • 处理异常:通过 Try...Catch 块处理数据库操作中的错误。
  • 关闭连接:在完成数据库操作后,关闭连接。

通过上述示例,你可以更好地理解如何使用 ADO.NET 在 VB.NET 中执行基本的数据库操作。在实际项目中,通常还会封装成更具通用性的数据库访问类,或者使用 Entity Framework 这样的 ORM 框架进行更高级的数据库操作。