簡體   English   中英

我如何將 azure MySQL 服務器與我的 Xamarin 表單應用程序連接?

[英]How i can connect azure MySQL server with my Xamarin forms app?

問題 :
我有一個舊的 C# Windows 表單應用程序,它使用 Microsoft azure (MySQL) 作為數據庫服務器,我想構建一個 android 應用程序(使用 Xamarin 表單),它從 C# WFA 應用程序使用的同一 MySQL 服務器(Azure)獲取數據.

問題:
Xamarin Forms 是否提供了這樣的方式來做到這一點?

有沒有更好的方法可以使用(作為初學者)與兩個不同平台(在我的情況下為台式機和手機)上的兩個不同應用程序共享同一個數據庫?

提前致謝

首先,歡迎來到SO!

Xamarin Forms 是否提供了這樣的方法?

簡單的答案是(不幸的是):不。

如果要使用 Xamarin Forms 重用存儲在 Azure 上的完全相同的數據庫,則應通過 Web 公開與 Azure 數據庫交互的 API。 然后您的 Xamarin Forms 應用程序將使用HttpClient類連接到您的 API 以發布/獲取數據。 Xamarin 表單支持本地 SQLite 數據庫引擎,僅此而已。 如果需要,請在此處使用 Xamarin Forms 了解有關本地數據庫的更多信息。

有沒有更好的方法可以使用(作為初學者)與兩個不同平台(在我的情況下為台式機和手機)上的兩個不同應用程序共享同一個數據庫?

最好的方法肯定是公開鏈接到 Azure DB 的 Web API。 將來,您的桌面和移動應用程序(以及任何其他應用程序)將調用您的 ApiController 方法,這意味着這將是您所有應用程序之間的共享代碼。

以下是有關如何從 Xamarin Forms 調用 API 的通用示例方法:

public static async Task<TResult> GetData<TResult>(string apiTarget)
{
      using (var client = new HttpClient())
      {
           //setup client
           client.BaseAddress = new Uri(_API_BASE_URI);
           client.MaxResponseContentBufferSize = 9999999; 
           client.DefaultRequestHeaders.Accept.Clear();
           client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _TOKEN);
           TResult _Result = default(TResult);
           //make request
           HttpResponseMessage response = await client.GetAsync(apiTarget).ConfigureAwait(false);
           if (response.IsSuccessStatusCode)
           {
               var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

               _Result = (TResult)JsonConvert.DeserializeObject<TResult>(content);
           }
           return _Result;
      }
}

快樂編碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM