【问题标题】:Connect to MySQL from Microsoft Data Application Block从 Microsoft 数据应用程序块连接到 MySQL
【发布时间】:2010-09-29 00:23:20
【问题描述】:
我使用数据应用程序块进行大部分数据访问,特别是使用 SqlHelper 类来调用 ExecuteReader、ExecuteNonQuery 和类似方法。在每个数据库调用中传递连接字符串。
如何修改它以启用与 MySQL 数据库的连接。
【问题讨论】:
标签:
database-connection
application-blocks
【解决方案1】:
如果您已经安装了 Enterprise Library 并且已经知道如何连接到 SQL Server 数据库,那么连接到 MySQL 数据库就不会更难了。
一种方法是使用 ODBC。这就是我所做的:
- 访问 MySQL.com 并下载最新的 MySQL ODBC 连接器。在我写这篇文章时,它是 5.1.5。我用的是 64 位版本,因为我有 64 位 Vista。
- 安装 ODBC 连接器。我选择使用无安装程序版本。我只是解压缩它并在管理员的命令提示符下运行 Install.bat。 MSI 版本可能工作正常,但我在安装 3.51 连接器时就这样做了。
- 通过打开 ODBC 控制面板并检查驱动程序选项卡来验证安装。您应该会看到那里列出的 MySQL ODBC 5.1 驱动程序。如果您已经拥有它,它似乎甚至可以与旧的 3.51 版本和平共存。此外,如果也安装了 .NET 连接器,它还能和平共处。
- 此时,您将执行已完成的操作来连接到 SQL Server 数据库。您只需要知道连接字符串的用途。
- 这是我的样子:
- 当然,您可以将“名称”设置为任何您想要的。
- 如果这是您唯一的数据库,您可以将其设置为 defaultDatabase,如下所示:
- 像往常一样访问代码中的数据!这是一个纯文本 sql 示例:
公共列表 Contact_SelectAll()
{
列表 联系人列表 = 新列表();
数据库 db = DatabaseFactory.CreateDatabase("MySqlDatabaseTest");
DbCommand dbCommand = db.GetSqlStringCommand("select * from Contact");
使用 (IDataReader dataReader = db.ExecuteReader(dbCommand))
{
而(dataReader.Read())
{
联系人联系人 = 新联系人();
contact.ID = (int) dataReader["ContactID"];
client.FirstName = dataReader["ContactFName"].ToString();
client.LastName = dataReader["ContactLName"].ToString();
客户端列表。添加(客户端);
}
}
返回客户端列表;
}
另一种方法是构建和使用 MySql 提供程序。 This guy did that。
我通过adapting these instructions 了解了如何连接到 Access。
Oh, and here are some more MySql Connection String samples.