📜  VB.Net-数据库访问(1)

📅  最后修改于: 2023-12-03 15:35:34.245000             🧑  作者: Mango

VB.Net 数据库访问

VB.Net 是一个强大的编程语言,可以轻松地访问各种类型的数据库,包括 Microsoft Access、SQL Server 和 Oracle 等等。本文将为程序员介绍 VB.Net 中的数据库访问,内容包括数据库连接、数据读取、数据写入、数据更新和事务处理等方面。

数据库连接

要想访问数据库,我们需要先建立连接。VB.Net 中可以使用 OleDbConnection 和 SqlConnection 两种连接对象来连接不同类型的数据库。下面是一个连接到 Microsoft Access 数据库的示例代码:

Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyDatabase.accdb;"
Dim conn As New OleDbConnection(connString)
conn.Open()

如果要连接 SQL Server 数据库,则需要使用 SqlConnection 对象,如下所示:

Dim connString As String = "Data Source=localhost;Initial Catalog=MyDatabase;User ID=sa;Password=123456;"
Dim conn As New SqlConnection(connString)
conn.Open()
数据读取

建立了数据库连接之后,我们可以通过执行 SQL 查询语句来读取数据库中的数据。VB.Net 中可以使用 OleDbDataReader 和 SqlDataReader 两种数据读取对象来实现。下面是一个读取 Microsoft Access 数据库中数据的示例代码:

Dim sql As String = "SELECT * FROM MyTable"
Dim cmd As New OleDbCommand(sql, conn)
Dim dr As OleDbDataReader = cmd.ExecuteReader()
While dr.Read()
    Console.WriteLine(dr("ID").ToString() & " " & dr("Name").ToString())
End While
dr.Close()

要读取 SQL Server 数据库中的数据,只需要将 OleDbDataReader 改为 SqlDataReader。下面是一个读取 SQL Server 数据库中数据的示例代码:

Dim sql As String = "SELECT * FROM MyTable"
Dim cmd As New SqlCommand(sql, conn)
Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
    Console.WriteLine(dr("ID").ToString() & " " & dr("Name").ToString())
End While
dr.Close()
数据写入

除了读取数据,我们还可以将数据写入到数据库中。VB.Net 中可以使用 OleDbCommand 和 SqlCommand 两种命令对象来执行 SQL 插入语句、更新语句和删除语句等操作。下面是一个向 Microsoft Access 数据库中插入数据的示例代码:

Dim sql As String = "INSERT INTO MyTable(ID, Name) VALUES(1, 'Tom')"
Dim cmd As New OleDbCommand(sql, conn)
Dim result As Integer = cmd.ExecuteNonQuery()
Console.WriteLine(result & " rows affected.")

如果要向 SQL Server 数据库中插入数据,则只需要将 OleDbCommand 改为 SqlCommand。下面是一个向 SQL Server 数据库中插入数据的示例代码:

Dim sql As String = "INSERT INTO MyTable(ID, Name) VALUES(1, 'Tom')"
Dim cmd As New SqlCommand(sql, conn)
Dim result As Integer = cmd.ExecuteNonQuery()
Console.WriteLine(result & " rows affected.")
数据更新

当数据库中的数据发生变化时,我们可以使用命令对象来更新数据库中的数据。下面是一个更新 Microsoft Access 数据库中数据的示例代码:

Dim sql As String = "UPDATE MyTable SET Name='Jack' WHERE ID=1"
Dim cmd As New OleDbCommand(sql, conn)
Dim result As Integer = cmd.ExecuteNonQuery()
Console.WriteLine(result & " rows affected.")

如果要更新 SQL Server 数据库中的数据,则只需要将 OleDbCommand 改为 SqlCommand。下面是一个更新 SQL Server 数据库中数据的示例代码:

Dim sql As String = "UPDATE MyTable SET Name='Jack' WHERE ID=1"
Dim cmd As New SqlCommand(sql, conn)
Dim result As Integer = cmd.ExecuteNonQuery()
Console.WriteLine(result & " rows affected.")
事务处理

事务处理是指将多个数据库操作作为一个整体进行处理,如果其中任何一个操作失败,整个事务都将被撤销。VB.Net 中可以使用 OleDbTransaction 和 SqlTransaction 两种事务对象来执行事务操作。下面是一个事务处理的示例代码:

Dim trans As OleDbTransaction = conn.BeginTransaction()
Try
    Dim sql As String = "INSERT INTO MyTable(ID, Name) VALUES(1, 'Tom')"
    Dim cmd As New OleDbCommand(sql, conn, trans)
    Dim result1 As Integer = cmd.ExecuteNonQuery()
    Console.WriteLine(result1 & " rows affected.")

    sql = "UPDATE MyTable SET Name='Jack' WHERE ID=1"
    cmd = New OleDbCommand(sql, conn, trans)
    Dim result2 As Integer = cmd.ExecuteNonQuery()
    Console.WriteLine(result2 & " rows affected.")

    trans.Commit()
    Console.WriteLine("Transaction committed.")
Catch ex As Exception
    trans.Rollback()
    Console.WriteLine("Transaction rolled back.")
End Try

如果要在 SQL Server 数据库中执行事务操作,只需要将 OleDbTransaction 改为 SqlTransaction 即可。

以上就是 VB.Net 中的数据库访问介绍,希望能对程序员有所帮助。