【问题标题】:How i can connect azure MySQL server with my Xamarin forms app?我如何将 azure MySQL 服务器与我的 Xamarin 表单应用程序连接起来?
【发布时间】:2019-01-16 13:36:25
【问题描述】:

问题:
我有一个使用 Microsoft azure (MySQL) 作为数据库服务器的旧 C# Windows 窗体应用程序,我想构建一个从 C# WFA 应用程序使用的同一 MySQL 服务器 (Azure) 获取数据的 android 应用程序(使用 Xamarin 窗体) .

问题:
Xamarin Forms 是否提供了这样的方式来做到这一点?

有没有更好的方法可以让我(作为初学者)使用两个不同平台(在我的情况下为桌面和手机)上的两个不同应用程序共享同一个数据库?

提前致谢

【问题讨论】:

    标签: c# mysql azure xamarin


    【解决方案1】:

    首先,欢迎来到 SO!

    Xamarin Forms 是否提供这样的方式来做到这一点?

    简单的答案是(不幸的是):不。

    如果你想通过 Xamarin Forms 重复使用存储在 Azure 上的完全相同的数据库,你应该在 Web 上公开一个与你的 Azure 数据库交互的 API。然后,您的 Xamarin Forms 应用程序将使用 HttpClient 类连接到您的 API,以便发布/获取数据。 Xamarin 表单支持本地 SQLite 数据库引擎,仅此而已。如果需要,请提供有关使用 Xamarin 表单 here 的本地数据库的更多信息。

    有没有更好的方法可以让我(作为初学者)分享 在两个不同平台上具有两个不同应用程序的同一个数据库( 在我的情况下是台式机和手机)?

    最好的方法是公开一个链接到 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;
          }
    }
    

    编码愉快!

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多