在 VB.NET 中为 MySql 和 MSSql 编程

Posted

技术标签:

【中文标题】在 VB.NET 中为 MySql 和 MSSql 编程【英文标题】:Programming for MySql and MSSql in VB.NET 【发布时间】:2013-06-09 15:05:50 【问题描述】:

我有一个用 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],而无需重新编码这些对象的每个实例化以适应特定的数据库平台。

【问题讨论】:

【参考方案1】:

这确实是一个广泛的问题,最好由full article like this 回答,但请看

System.Data.Common Namespace

System.Data.Common 中的类旨在为开发人员提供 编写适用于所有 .NET Framework 的 ADO.NET 代码的方法 数据提供者。

【讨论】:

【参考方案2】:

好吧,你可以有两个 linq to sql 实例(其中的实例和类的数量没有限制),但我没有将 linq2sql 与 MySQL 一起使用的经验,所以我不知道它的效果如何。我倾向于建立一个测试项目,添加一个 linq2sql setofdatatclesses 并尝试连接到 MySQL 数据库,看看会发生什么)

【讨论】:

以上是关于在 VB.NET 中为 MySql 和 MSSql 编程的主要内容,如果未能解决你的问题,请参考以下文章

PHP MySql MsSql 如何插入或更新 ['] 或 ["] 或 [`] 字符?

如何在 vb.net、SQL Server 中为多个搜索制作代码

使用VB.NET在MSSQL中根据一个字段值进行查找相同的字段的另一个别名值怎么写?

如何在 VB.NET 中为基于 Windows 的应用程序创建带有自动建议的文本框?

VB.NET 中 MoveNext 的等价物

C#/VB.NET:在 Word 中设置文本对齐方式