C# 从MySQL ADO.NET库切换到MySQL连接器问题
我已经将我的C#项目从MySQL ADO.NET库切换到MySQL连接器,因为MySQL库中有一个bug 与上述问题有关的上一个问题: 我使用文档作为切换库的参考 随着库的更改,现有项目中的MySQL关键字会触发一些新的错误 1)C# 从MySQL ADO.NET库切换到MySQL连接器问题,c#,mysql,ado.net,C#,Mysql,Ado.net,我已经将我的C#项目从MySQL ADO.NET库切换到MySQL连接器,因为MySQL库中有一个bug 与上述问题有关的上一个问题: 我使用文档作为切换库的参考 随着库的更改,现有项目中的MySQL关键字会触发一些新的错误 1) MySqlConnection私人MySqlConnection行 错误:表示与MySQL服务器数据库的打开连接。这 类不能被继承。“MySqlConnection”类型在这两个数据库中都存在 “MySql.Data”和“MySqlConnector” 2) MySq
MySqlConnection
私人MySqlConnection代码>行
错误:表示与MySQL服务器数据库的打开连接。这
类不能被继承。“MySqlConnection”类型在这两个数据库中都存在
“MySql.Data”和“MySqlConnector”
2) MySqlException
在catch(MySqlException-ex)
行中
错误:当MySQL返回错误时引发异常。这个班
无法继承。“MySqlException”类型在这两个数据库中都存在
“MySql.Data”和“MySqlConnector”
3) MySqlCommand cmd=new MySqlCommand()中的MySqlCommand
代码>行
错误:表示要对MySQL数据库执行的SQL语句。
该类不能被继承。“MySqlCommand”类型在这两个文件中都存在
“MySql.Data”和“MySqlConnector”
4) cmd.Parameters.Add(“?jobNo”,MySqlDbType.VarChar)。Value=(值[0])代码>行
错误:为指定特定于MySQL的字段、属性的数据类型
在MySql.Data.MySqlClient.MySqlClient参数中使用。类型
“MySqlDbType”在“MySql.Data”和“MySqlConnector”中都存在
关于如何减轻上述错误有何建议?主要错误是:
类型“MySqlConnection”在“MySql.Data”和“MySqlConnector”中都存在
您的项目似乎同时引用了MySql.Data.dll
和MySqlConnector
。使用NuGet package Manager卸载MySql.Data
包,并确保从csproj、packages.config
等中删除MySql.Data.dll
引用
(在高级方案中,您可以使用引用两个库,但我强烈建议不要使用:它会导致创建两个连接池,启动两个清理线程等)。主要错误是:
类型“MySqlConnection”在“MySql.Data”和“MySqlConnector”中都存在
您的项目似乎同时引用了MySql.Data.dll
和MySqlConnector
。使用NuGet package Manager卸载MySql.Data
包,并确保从csproj、packages.config
等中删除MySql.Data.dll
引用
(在高级方案中,您可以使用引用两个库,但我强烈建议不要使用:它会导致创建两个连接池,启动两个清理线程等)。类型“MySqlConnection”同时存在于“MySql.Data”和“MySqlConnector”中,表明该类型已存在于两个程序集中,这会导致引用不明确。通常,您只需使用NuGet package manager和卸载程序包MySql.Data(并删除该程序集的所有可能跟踪)命令删除MySql.Data.dll
引用,就可以解决引用问题,但在某些情况下,您可以执行以下步骤:
使用
语句,例如,外部别名MySqlConnectorAlias,在所有之前,转到引用属性并为程序集设置别名MySqlConnector
代码>
使用步骤(1)中别名的引用,例如MySqlConnectorAlias::MySql.Data.MySqlClient.MySqlConnection
(仅适用于.NET Core)在使用步骤(1)和(2)之前,请编辑.csproj文件,其中包含ChangeAliaseSofstrongNameAssembles
,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- other stuff -->
<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'MySqlConnector'">
<Aliases>MySqlConnectorAlias</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
<!-- other stuff -->
</Project>
MySqlConnectorAlias
“MySqlConnection”类型在“MySql.Data”和“MySqlConnector”中都存在,这表明该类型在两个程序集中都存在,这导致引用不明确。通常,您只需使用NuGet package manager和卸载程序包MySql.Data(并删除该程序集的所有可能跟踪)命令删除MySql.Data.dll
引用,就可以解决引用问题,但在某些情况下,您可以执行以下步骤:
使用
语句,例如,外部别名MySqlConnectorAlias,在所有之前,转到引用属性并为程序集设置别名MySqlConnector
代码>
使用步骤(1)中别名的引用,例如MySqlConnectorAlias::MySql.Data.MySqlClient.MySqlConnection
(仅适用于.NET Core)在使用步骤(1)和(2)之前,请编辑.csproj文件,其中包含ChangeAliaseSofstrongNameAssembles
,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- other stuff -->
<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'MySqlConnector'">
<Aliases>MySqlConnectorAlias</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
<!-- other stuff -->
</Project>
MySqlConnectorAlias