Conectar aplicación Xamarin.Android a BD MySQL Online
Gracias al plugin Xamarin.MySQL.Data podemos realizar una conexión a una base de datos MySQL desde nuestra aplicación Xamarin.Android.
Importante: Antes de empezar, recordemos que como toda aplicación puede ser decompilada y los hackers puede obtener los datos de tu conexión, toma tus precauciones o utilízala bajo tu propio riesgo.
Este tutorial es una actualización de mi video de YouTube el cual esta algo atrasado, ahora lo haré desde Visual Studio 2019 y en lo único que cambia es en la forma de instalar el plugin, ahora comencemos.
1. Descarga e instala el plugin Xamarin.MySQL.Data
Para esto nos dirigimos al administrador de paquetes NuGet, que esta en Herramientas -> Administrador de paquetes NuGet y Administrar paquetes NuGet para la solución…
En la ventana que se abre, cambiamos a Examinar, ahi buscaremos como tal ‘Xamarin.MySQL.Data’ y lo instalamos en nuestro proyecto (Aceptamos la licencia).
Ahora si verificamos en las dependencias de nuestro proyecto, veremos que ya esta la .dll
2. Realizar la conexión a la base de datos MySQL
Para este ejemplo voy a crear un método llamado TryConnection que recibe el usuario y la contraseña del usuario de la base de datos que me permita establecer conexión con mi base de datos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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; } } } } |
Recordemos que no podemos utilizar ‘localhost’ como servidor a menos que configures tu PC para ser un servidor MySQL, en mi caso utilizare el servidor de scrapywar.com.
3. Comprobar la conexión ala base de datos
Para eso tengo este layout que admite un usuario y una contraseña que son las credenciales para realizar la conexión a la base de datos.
En el MainActivity vamos a asignar los elementos del Layout a objetos del mismo tipo y vamos a darle una acción al botón, el resultado es el siguiente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | //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. Implementar en un simulador o dispositivo
Si tienen el emulador oficial de Android o algún otro pueden implementar directamente la aplicación, si deseas generar una APK visita mi post: ‘Como generar una apk en Xamarin.Android’
Yo lo implemente en mi dispositivo y como podemos observar al introducir el usuario y la contraseña correctos me aparece un mensaje de ‘conexión exitosa’ de lo contrario dará error.


Descargas
Descarga el código del proyecto
Descargar código fuente
¿tienes problemas? deja tu comentario, tratare de darte una solución a tu problema.
Te recomiendo leer: Respaldar y restaurar bases de datos MySQL en C#
Sígueme en mis redes sociales y activa las notificaciones de esta pagina pronto subiré más cosas de este tipo.