无法使用 C# 从 Xamarin.iOs 和 Xamarin.Android 连接到 MySql

Posted

技术标签:

【中文标题】无法使用 C# 从 Xamarin.iOs 和 Xamarin.Android 连接到 MySql【英文标题】:Cannot connect to MySql from Xamain.iOs and Xamarin.Android using C# 【发布时间】:2014-12-07 15:23:32 【问题描述】:

我在 Mac 上使用 xamarin studio 为 iosandroid 构建 mob 应用程序,我想连接到 mysql DB。所以我从以下链接下载了 MySql 连接器:http://dev.mysql.com/downloads/connector/net/

并在我的代码中引用它并添加以下代码:

    MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder ();
    conn_string.Server = "serverIP";
    conn_string.UserID = "user";
    conn_string.Password = "pssword";
    conn_string.Database = "DBTest";

    MySqlConnection conn = new MySqlConnection(conn_string.ToString());
    conn.Open();
    conn.Close()

当我构建解决方案时,构建成功,但是当我运行解决方案时,它会给我以下错误:

  System.TypeLoadException has been thrown Could not load type        'MySql.Data.MySqlClient.MySqlTrace' from assembly 'MySql.Data, Version=6.9.5.0,    Culture=neutral, PublicKeyToken=c5687fc88969c44d'.

conn.Open();

后来发现这个版本不兼容xamarin.ios或者xamarin.android profile。

经过长期研究,可用的选择是:

-使用针对 Xamarin.Android 或 Xamarin.iOS 支持的 PCL 配置文件构建的 MySql.Data.dll 程序集 - 针对 Xamarin.Android 或 Xamarin.iOS 配置文件程序集重新编译 MySql.Data 源。

是否有人有可行的 DLL 或能够通过上述解决方案,或者是否有任何其他想法?

真的很感激

【问题讨论】:

【参考方案1】:

我认为从移动应用程序连接到远程数据库的一般方法是调用 web 服务(最好是使用 JSON 的基于 rest 的服务)。这样,您连接到 MySQL、Oracle、SQL 服务器数据库的逻辑就完全在服务器上。为了连接到设备上的本地数据库,大多数人通常会使用 SQLite。希望这会有所帮助。

【讨论】:

【参考方案2】:

在我看来,从 iOS 应用程序直接连接到 MySQL 数据库是不明智的。

我个人需要使用 REST、JSON 或 php 制作基于 Web 的后端。甚至是一个组合:)

查看此链接以了解其背后的逻辑:http://codewithchris.com/iphone-app-connect-to-mysql-database/#connectiphonetomysql

否则,请尝试在 Xaramin 论坛上查看您的帖子 :) Link 其他人

【讨论】:

谢谢,我知道最好使用 web 服务连接到 mysql,但我有一个特定的场景,我想直接连接到 xamarin ios/android 中的 mysql,我想检查是否MySql.data.dll(可移植类库)版本可用。 我尝试了 Snowwolf725 在 Xamarin 论坛上的建议,对我自己来说效果很好 - 你试过了吗?

以上是关于无法使用 C# 从 Xamarin.iOs 和 Xamarin.Android 连接到 MySql的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor

C# Monotouch/Xamarin.iOS - 可滚动的 UIView

如何从 C++ 为 Xamarin.Android 创建 C# DLL

使用 xamarin.ios c# 以编程方式添加嵌套的堆栈视图

Xamarin iOS App 在已最小化时无法执行代码

无法从UIKit.UIImage转换为ZXing.LuminanceSource - 2017年Visual Studio中的Xamarin iOS