C# 从MySQL ADO.NET库切换到MySQL连接器问题

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

我已经将我的C#项目从MySQL ADO.NET库切换到MySQL连接器,因为MySQL库中有一个bug

与上述问题有关的上一个问题:

我使用文档作为切换库的参考

随着库的更改,现有项目中的MySQL关键字会触发一些新的错误

1)
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