无法使用 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 为 ios 和 android 构建 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# 以编程方式添加嵌套的堆栈视图
无法从UIKit.UIImage转换为ZXing.LuminanceSource - 2017年Visual Studio中的Xamarin iOS