gpt4 book ai didi

c# - 如何在不实际安装连接器的情况下通过 C# 使用 mysql 连接器连接到 mysql

转载 作者:可可西里 更新时间:2023-11-01 06:33:59 25 4
gpt4 key购买 nike

我们有一个基于 dot net 2.0 的 C# 产品,它使用 Mysql 作为数据存储。当我们在 XP/Win 7 机器上安装 mysql 连接器 6.3.6 时,我们能够从 C# 代码连接到数据库,没有任何问题。但是我们在连接到 mysql 数据库时遇到了一个问题,因为 mysql 连接器实际上没有安装在机器上,而只是存在于与可执行文件相同的目录中。我们不想在我们希望产品运行的每台机器上都安装连接器。我们希望直接使用连接器 dll,因为我们在代码中使用任何第 3 方 dll(例如记录器)。

即使我们将 mysql.data.dll 复制到安装 exe 的同一目录中,它也会构建但不会连接到数据库。

给出的错误是

Unable to find the requested .Net Framework Data Provider. It may not be installed Blockquote

技术信息:

  • MySQL 5.0
  • C#
  • 点网框架 2.0
  • Mysql Connector 6.3.6(sql connector ver 6.0.3 出现同样的问题)
  • Win XP/Win 7

当我们使用ASP.Net时,我们可以在web.config中指定下面给出的标签,将dll放到bin目录下就可以直接连接mysql数据库


<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

为什么我们不能在 C# 中为桌面环境中的客户端服务器应用程序做同样的事情。

最佳答案

尝试这样的事情(我没有检查任何可能的版本/配置,但它目前适用于我的 Vista x64 for MySql some 5.5...和 ​​.net connector 6.4.3.0 - 使用 mysql.data.dll for v4从 .net/mono 下载)。

确保下面引用的 mysql.data.dll 程序集在您的当前目录中。

using(var dt = new DataTable()) {    dt.Columns.Add("Name");    dt.Columns.Add("Description");    dt.Columns.Add("InvariantName");    dt.Columns.Add("AssemblyQualifiedName");    dt.Rows.Add("Mysql something",         "mysql more",         "mysqlClient",        "MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d");    var f = DbProviderFactories.GetFactory(dt.Rows[0]);    using(var conn = f.CreateConnection()) {        conn.ConnectionString = "your string here";        conn.Open();        // and do your work here.        Console.WriteLine(conn);    }}

关于c# - 如何在不实际安装连接器的情况下通过 C# 使用 mysql 连接器连接到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com