AndroidApp和MySqlConnection没有工作连接.open

时间:2018-05-02 14:32:11

标签: c# android mysql xamarin.android i18next

当我尝试打开连接时发生错误并说:

  

System.TypeInitializationException:' MySql.Data.MySqlClient.Replication.ReplicationManager'的类型初始值设定项。抛出异常。

这是代码的一部分:

MySqlConnection _Conn;

public void Conectar()
{
    new I18N.West.CP1250();

    string SC;

    SC = "server = XXX; Port = 3306; database = XXX; user id = XXX; password = XXX; charset = utf8";

    _Conn = new MySqlConnection(SC);

    _Conn.Open();
}

4 个答案:

答案 0 :(得分:1)

如果您遇到Xamarin问题,应该这样做:

1)删除参考Mysql数据

2)添加参考Xamarin.Mysql

您可以保留您的通话(使用MySql.Data.MySqlClient;)

答案 1 :(得分:0)

听起来MySql.Data.MySqlClient.Replication.ReplicationManager静态构造函数正在尝试初始化System.Configuration.ConfigurationManager类,Xamarin Android不支持该类。

为避免这种情况,您可以使用没有该依赖关系的备用MySQL客户端库,例如MySqlConnector on NuGet

答案 2 :(得分:0)

已解决

使用软件包Nuget MySql.Connector 代替MySql.Data

我正在使用它,并且在Xamarin Android上还可以

https://www.nuget.org/packages/MySqlConnector/

再见

答案 3 :(得分:0)

您在使用这个 Oracle 包 (https://www.nuget.org/packages/MySql.Data/) 吗?然后,你得到的这部分异常信息:

System.PlatformNotSupportedException: Operation is not supported on this platform.

表示由于体系结构或操作系统不兼容,此库不适用于 Xamarin/Android。没有编译器错误,但是当尝试在 Xamarin/Android 应用程序上执行其方法时,Oracle MySQL 包也会引发其他总是与架构/操作系统相关的异常,所以我最近给 Oracle 写了一条消息,要求他们包含有关不兼容性的信息在自述文件中...所有与 Xamarin 和该库相关的论坛都结束了谈论其 Android 不兼容问题。

这是我使用的解决方案,而不是 Oracle 库。它是 NuGet 上的替代、最新且非常相似(并且 100% 在 Xamarin Android 中工作)包,您可以在此处获取它: https://www.nuget.org/packages/MySqlConnector/

另一种选择,非常相似,但更新和使用较少: https://www.nuget.org/packages/Xamarin.MySql.Data/

而且还有另一个包(所有文档都是中文的,并且以一种奇怪/复杂的方式来构建查询......)但它也可以工作并经常接收更新。但在尝试使用之前,最好先看看这里的文档和示例: https://github.com/dotnetcore/FreeSql