根据提供的文件信息,我们可以深入探讨VB.NET中的数据库访问类及其实现细节。这将涉及VB.NET编程语言的基础知识、如何在VB.NET中连接不同类型的数据库(如Access和SQL Server)、使用ADO.NET进行数据库操作的方法,以及如何处理事务。 ### 一、VB.NET与数据库交互概述 在VB.NET中,开发人员通常会创建一个通用的数据库访问类来封装所有与数据库相关的操作,例如查询、插入、更新和删除等。这种做法有助于简化代码并提高可维护性。本节将详细介绍如何构建这样的类,并提供具体的代码示例。 ### 二、创建数据库访问类 #### 1. 类定义 该数据库访问类名为`MyDB`,它负责与数据库进行交互。该类包含了一些属性和方法用于设置数据库类型、连接字符串,并提供了执行SQL语句、处理事务等功能。 #### 2. 属性 - `DbType`:表示使用的数据库类型(0 表示 Access,1 表示 SQL Server)。 - `ConnString`:表示数据库连接字符串。 #### 3. 构造函数 构造函数`New()`初始化`DbType`和`ConnString`。这些值可以从配置文件中读取,例如通过`ConfigurationSettings.AppSettings`获取。 #### 4. 方法 - `BeginTransaction()`: 开始事务。 - `Rollback()`: 回滚事务。 - `Commit()`: 提交事务。 - `RunSql()`: 执行SQL语句。有三个重载版本,分别用于返回数据读取器、返回数据集和不返回任何结果。 - `GetOneData()`: 获取单个数据。 - `Close()`: 关闭连接。 ### 三、连接数据库 #### 1. 连接字符串格式 - **对于Access**: ```vbnet sConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};", sDBName) ``` - **对于SQL Server**: ```vbnet sConnString = String.Format("Provider=SQLOLEDB.1;Server={0};UID={1};PWD={2};Database={3}", sDBServer, sDBUser, sDBPwd, sDBName) ``` #### 2. 创建数据库接口对象 根据数据库类型创建不同的数据库接口对象: - 对于Access,使用`DBOleDB`类。 - 对于SQL Server,使用`DBSqlServer`类。 ### 四、执行SQL语句 #### 1. `RunSql()`方法 该方法用于执行SQL语句。它接受SQL语句作为参数,并根据需要返回数据读取器或数据集。这里展示了三种不同的重载版本: ```vbnet Public Sub RunSql(ByVal sql As String, <Out()> ByRef Reader As IDataReader) Public Sub RunSql(ByVal sql As String, <Out()> ByRef pds As System.Data.DataSet) Public Sub RunSql(ByVal sql As String) ``` #### 2. 使用示例 假设我们想要查询某个表的所有记录并将其存储在一个数据集中,可以这样调用`RunSql()`方法: ```vbnet Dim ds As New System.Data.DataSet() MyDB.RunSql("SELECT * FROM MyTable", ds) ``` ### 五、事务处理 事务处理是数据库操作中的一个重要概念。`MyDB`类提供了处理事务的方法: - `BeginTransaction()`: 开始事务。 - `Rollback()`: 如果发生错误,则回滚事务。 - `Commit()`: 如果一切正常,则提交事务。 ### 六、总结 本文详细介绍了如何在VB.NET中创建一个数据库访问类`MyDB`,包括如何根据不同的数据库类型设置连接字符串、执行SQL语句、处理事务等。这个类的设计灵活且易于扩展,可以根据具体需求进行修改和优化。通过使用此类,可以有效地管理数据库交互逻辑,提高代码的可读性和可维护性。






























Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Configuration
Imports System.Runtime.InteropServices
Namespace Veehu
' 数据库访问
' by veehu.com
Public Class MyDB
Dim sDbType As String '0, Access ; 1 sqlserver
Dim sConnString As String
Dim odb As DBInterface
ReadOnly Property DbType() As String
Get
Return sDbType
End Get
End Property
ReadOnly Property ConnString() As String
Return sConnString
End Get
End Property
Public Sub New()
sDbType = Convert.ToString(ConfigurationSettings.AppSettings("DBType"))
Dim sDBName As String = Convert.ToString(ConfigurationSettings.AppSettings("DBName"))
Dim sDBUser As String = Convert.ToString(ConfigurationSettings.AppSettings("DBUser"))
Dim sDBPwd As String = Convert.ToString(ConfigurationSettings.AppSettings("DBPwd"))
Dim sDBServer As String = Convert.ToString(ConfigurationSettings.AppSettings("DBServer"))
If sDbType = "0" Then
sConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", sDBName)
If sDBUser.Trim() <> "" Then
sConnString = String.Format("{0}User ID={1};", sConnString, sDBUser)
End If
If sDBPwd.Trim() <> "" Then
sConnString = String.Format("{0}Password={1};", sConnString, sDBPwd)
End If
odb = New DBOleDB(sConnString)
Else
sConnString = String.Format("Provider=SQLOLEDB.1;Server={0};UID={1};PWD={2};Database={3}", sDBServer, sDBUser, sDBPwd, sDBName)
odb = New DBSqlServer(sConnString)
End If
End Sub
Public Sub BeginTransaction()
odb.BeginTransaction()
剩余12页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


