How to connect MySQL database in Xamarin.Android / iOS

因為安全性的問題,

所以正常情況如果在手機中要連接 MySQL 應該要使用 Web Service 或是 REST API 之類的方式進行連結,

但是在某些特殊情況,還是會有需要直接連結 MySQL 的需求‧

因為這不是一般建議的方式所以網路上找了半天也找不到相關的說明,

不然就是設定上有許多問題,

這時可以參考本篇的方式進行連結,

會需要下載 MySQL 的函式庫 MySQL Connector for Mono

然後在 Reference 中加入  MySql.Data.cf.dll (注意不是 MySQL.Data.dll 會因為相依性的問題無法編譯或是執行階段錯誤)

在程式碼最前面加入引用:

using MySql.Data.MySqlClient;

實際使用的程式碼:

            new I18N.West.CP1250 ();
			MySqlConnection sqlconn = null;
			try {
				string connsqlstring = string.Format ("Server=127.0.0.1;Port=3306;database=MyDB;User Id=user;Password=user");
				sqlconn = new MySqlConnection(connsqlstring);
				sqlconn.Open();
			} catch(Exception){
			} finally {
				sqlconn.Close ();
			}

 

Example Source Code

 

PS. 在 iOS 專案中可能會出現下面的錯誤訊息,這是因為 MySQL.Data.CF.dll 會引用到 System.Data 2.0.0.0 的版本,

但是 Xamaria 內的 System.Data 版本為 2.0.5.0 修改 MySQL.Data.CF.dll 後就可以正常編譯,這個是修改後的版本 MySql.Data.CF (Path By SnowWolf725)

"Reference Required to assembly 'System, Version=2.0.0.0, Culture=neutral, PublickeyToken=969bd8053d3322ac, Retargetable=Yes' containing the base class 'System.ComponentMode.Component'