从Microsoft Data Application Block连接到MySQL

时间:2008-12-31 14:01:54

标签: database-connection application-blocks

我正在使用数据应用程序块进行大部分数据访问,特别是使用SqlHelper类来调用ExecuteReader,ExecuteNonQuery等方法。使用每个数据库调用传递连接字符串。

我如何修改它以启用与MySQL数据库的连接。

1 个答案:

答案 0 :(得分:3)

如果您已安装企业库并且已经知道如何连接到SQL Server数据库,那么连接到MySQL数据库并不困难。

一种方法是使用ODBC。这就是我所做的:

  1. 转到MySQL.com并下载最新的MySQL ODBC连接器。在我写这篇文章时它是5.1.5。我使用的是64位版本,因为我有64位Vista。
  2. 安装ODBC连接器。我选择使用无安装程序版本。我刚刚解压缩它并在管理员的命令提示符下运行Install.bat。 MSI版本可能工作正常,但是当我安装3.51连接器时,我就这样做了。
  3. 通过打开ODBC控制面板并选中“驱动程序”选项卡来验证安装。你应该看到那里列出的MySQL ODBC 5.1驱动程序。如果你已经拥有它,它似乎甚至与旧的3.51版本和平共存。此外,如果安装了.NET连接器,它也会和平共存。
  4. 此时,您将完成连接SQL Server数据库所做的工作。您需要知道的是连接字符串的用途。
  5. 这是我的样子:
  6. 当然,您可以将“名称”设置为您想要的任何内容。
  7. 如果这是您唯一的数据库,您可以将其设置为defaultDatabase,如下所示:
  8. 像往常一样访问代码中的数据!这是一个纯文本的SQL示例:
  9.     public List<Contact> Contact_SelectAll()
        {
            List<Contact> contactList = new List<Contact>();
            Database db = DatabaseFactory.CreateDatabase("MySqlDatabaseTest");
            DbCommand dbCommand = db.GetSqlStringCommand("select * from Contact");
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    Contact contact = new Contact();
                    contact.ID = (int) dataReader["ContactID"];
                    client.FirstName = dataReader["ContactFName"].ToString();
                    client.LastName = dataReader["ContactLName"].ToString();
                    clientList.Add(client);
                }
            }
    
            return clientList;
        }
    

    另一种方法是构建和使用MySql提供程序。 This guy did that。 我通过adapting these instructions了解了如何连接到Access。 Oh, and here are some more MySql Connection String samples