代码之家  ›  专栏  ›  技术社区  ›  PotatoMC

我可以使用MySQL数据库与Xamarin创建跨平台应用程序吗?

  •  1
  • PotatoMC  · 技术社区  · 3 年前

    我需要为iOS和android创建一个在线商店类型的应用程序。我想在数据库中使用MySQL,我认为Xamarin是开发应用程序的最佳选择。这可能吗?我可以使用Xamarin连接到MySQL数据库吗?

    我只使用Android Studio(Java)和Firebase数据库制作过应用程序,所以我还是新手,还在学习。

    我也会很感激任何提示或建议!谢谢

    2 回复  |  直到 3 年前
        1
  •  1
  •   Javier G.Raya    3 年前

    多亏了Xamarin。MySQL。数据插件我们可以从Xamarin连接到MySQL数据库。Android应用程序。

    重要提示:在我们开始之前,请记住,由于任何应用程序都可以被反编译,黑客也可以从您的连接中获取数据,请采取预防措施,否则使用该应用程序的风险将由您自行承担。

    1.下载并安装Xamarin。MySQL。数据插件。

    要做到这一点,我们需要访问NuGet软件包管理器,它位于Tools->NuGet Package Manager并管理解决方案的NuGet软件包。。。

    enter image description here

    enter image description here

    在打开的窗口中,我们切换到浏览,在那里我们将查找“Xamarin”。MySQL。我们将其安装在我们的项目中(我们接受许可证)。

    enter image description here

    现在,如果我们检查项目的依赖关系,我们将看到。dll已经存在了。

    enter image description here

    2.连接到MySQL数据库。

    在本例中,我将创建一个名为TryConnection的方法,该方法接收数据库用户的用户名和密码,这将允许我建立到数据库的连接。

    using System;
    using Android.Content;
    using Android.Widget;
    using MySql.Data.MySqlClient;
     
    namespace MySQL_Xamarin
    {
     public class Conexion
     {
     /// <summary>
     /// Prueba la conexión a la base de datos utilizando las credenciales correspondientes
     /// </summary>
     /// <param name="context"></param>
     /// <param name="Usuario"></param>
     /// <param name="Contrasenia"></param>
     /// <returns></returns>
     public bool TryConnection(Context context, string Usuario,string Contrasenia)
     {
     MySqlConnectionStringBuilder Builder = new MySqlConnectionStringBuilder();
     Builder.Port = 3306;
                            //Al ser una BD Online debes usar la ip de tu servidor y no localhost
     Builder.Server = "tu.servidor.mysql"; 
     Builder.Database = "tu_base_de_datos";
     Builder.UserID = Usuario; //Es el usuario de la base de datos
     Builder.Password = Contrasenia; //La contraseña del usuario
     try
     {
     MySqlConnection ms = new MySqlConnection(Builder.ToString());
     ms.Open(); //Debes agregar la referencia System.Data
     return true;
     }
     catch (Exception ex)
     {
     Toast.MakeText(context,ex.ToString(), ToastLength.Long).Show(); //Muestra un Toast con el error (Puede ser muy largo)
     return false;
     }
     }
     }
    }
    

    请记住,除非将PC配置为MySQL服务器,否则不能使用“localhost”作为服务器,在我的情况下,我将使用scrapywar。com服务器。

    3.检查数据库连接

    为此,我有一个允许用户和密码的布局,这是连接数据库的凭证。

    在main活动中,我们将把布局的元素分配给相同类型的对象,并给按钮一个操作,结果如下。

    //Declaración de los componentes.
    Button access;
    EditText User, Password;
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                Xamarin.Essentials.Platform.Init(this, savedInstanceState);
                // Set our view from the "main" layout resource
                SetContentView(Resource.Layout.activity_main);
     //Se asignan los controles del Layout a una varaible del mismo tipo
     access = FindViewById<Button>(Resource.Id.btn_entrar);
     User = FindViewById<EditText>(Resource.Id.et_user);
     Password = FindViewById<EditText>(Resource.Id.et_password);
     
     //La accion de presionar el boton
     access.Click += delegate {
     //Se crea una instancia de la clase Conexion
     Conexion con = new Conexion();
     //Se prueba la conexion pasando los datos de los EditText que son usuario y contraseña
     if (con.TryConnection(this,User.Text,Password.Text)){
     Toast.MakeText(this, "Conexion Exitosa!", ToastLength.Long).Show();
     }
     else{
     Toast.MakeText(this, "Error!", ToastLength.Long).Show();
     }
     };
     }
    

    4.在模拟器或设备中实施

    如果你有官方的Android emulator或任何其他软件,你可以直接实现应用程序,如果你想生成APK,请访问我的帖子:“如何在Xamarin中生成APK”。安卓。

    我在我的设备上实现了它,我们可以看到,当输入正确的用户名和密码时,我会收到一条“成功连接”消息,否则它会给出错误。

    网址: https://scrapywar.com/conectar-aplicacion-xamarin-android-a-bd-mysql-online/

    注: 这页是西班牙语的,因为它是我的母语,但我已经翻译过了。

        2
  •  0
  •   rapid_dev    3 年前

    是的,你可以通过Xamarin制作应用程序并连接MySQL数据库