微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

|| 我们有一个基于点网2.0的C#产品,它使用MysqL作为数据存储。当我们在XP / Win 7计算机上安装MysqL连接器6.3.6时,我们能够从C#代码连接到数据库而没有任何问题。但是,当MysqL连接器实际上未安装在计算机上,但与可执行文件位于同一目录中时,连接到MysqL数据库时遇到问题。我们不想在要运行该产品的每台计算机上安装连接器。我们希望在我们的代码中使用任何第三方dll(例如logger)时直接使用connectory dll。 即使我们将MysqL.data.dll复制到安装exe的相同目录中,它也会生成但不会连接到数据库。 给出的错误是   找不到请求的.Net Framework数据提供程序。它可能没有安装   块引用 技术信息: 的MysqL 5.0 C# 点网框架2.0 MysqL Connector 6.3.6(sql连接器的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#中为桌面环境中的Client Server应用程序做同样的事情。     

解决方法

        尝试这样的事情(我没有检查任何可能的版本/配置,但是它目前在我的Vista x64上适用于MySql的5.5 ...和.net连接器6.4.3.0-使用来自的v4的mysql.data.dll。网络/单下载)。 确保下面引用的mysql.data.dll程序集在当前目录中。 using(var dt = new DataTable()){     dt.Columns.Add(\“ Name \”);     dt.Columns.Add(\“描述\”);     dt.Columns.Add(\“ InvariantName \”);     dt.Columns.Add(\“ AssemblyQualifiedName \”);     dt.Rows.Add(\“ Mysql something \”,         \“ mysql more \”,         \“ mysqlClient \”,         \“ MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,版本= 6.4.3.0,区域性=中性,PublicKeyToken = c5687fc88969c44d \”);     var f = DbProviderFactories.GetFactory(dt.Rows [0]);     using(var conn = f.CreateConnection()){         conn.ConnectionString = \“您的字符串在这里\”;         conn.Open();         //,然后在这里工作。         Console.WriteLine(conn);     } }     ,        该页面没有详细介绍.NET Framework依赖关系,但是我怀疑Mysql连接器可能依赖于更高版本的.NET Framework。 换句话说,您的应用程序使用Framework 2,但是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>
...需要写入到您的machine.config中。 我相信默认路径应类似于:   C:\\ WINDOWS \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ CONFIG 更新资料 您应该能够将MySQL .Net / Connector安装程序作为安装包的一部分包含在内。出于与web.config中要求信息相同的原因,需要machine.config中的条目。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。