我有一个用 VB.NET 编写的程序,作为其功能的一部分,它需要使用许多数据库类。
目前,这些类被专门编程为使用源自 System.Data.SqlClient的对象,并使用SqlConnection、SqlCommand、SqlParameter 和 SqlDataAdapter 等类。
我的目标是使用来自Mysql.Data.MySqlClient的类似类(通过 MySQL 站点上的 Connector/Net 下载获得)。例如:MySqlConnection、MySqlCommand、MySqlParameter 和 MySqlDataAdapter。
代码中是否有某种方式可以指定类的抽象版本(例如 AbstractSqlCommand、AbstractSqlParameter),并能够根据其他配置变量的使用在 SqlCommand 和 MySqlCommand 之间选择正确的实现。
Dim command As New AbsSqlCommand(sql, connection)
For Each p As AbsSqlParameter In param
command.Parameters.Add(p)
Next
Dim timeout As Integer = 3000
command.CommandTimeout = timeout
Try
connection.Open()
Catch
Throw New Exception("Connection failed")
End Try
Dim Adapter As New AbsSqlDataAdapter(command)
Adapter.Fill(table)
Return table
因此,在上述情况下,可以使用某种全局变量或配置变量来区分 AbsSqlCommand 是实际用作 MySqlCommand 还是 SqlCommand [MSSQL],而无需重新编码这些对象的每个实例化以适应特定的数据库平台.