|
CSharp: Desarrollar aplicación C# con acceso nativo a MySQL Server mediante ADO.NET
Explicamos en este tutorial cómo desarrollar una aplicación con el lenguaje de programación Microsoft Visual C# .Net (de la suite de desarrollo Microsoft Visual Studio .Net 2010). Explicamos cómo realizar una conexión nativa (sin utilizar intermediarios como ODBC ni OLE DB) a un servidor de bases de datos MySQL Server (sea en Linux o en Windows) desde nuestra aplicación Microsoft Visual C# .Net mediante ADO.NET (MySQL Connector Net).
Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual C# .Net y driver Connector/Net ADO.NETA continuación indicamos los requisitos necesarios para desarrollar una aplicación, usando el IDE de desarrollo Microsoft Visual C# .Net, que acceda de forma nativa (directa sin intermediarios) al motor de base de datos gratuito MySQL Server:
Instalar Microsoft Visual Studio .Net 2010 y desarrollar aplicación con acceso a PostgreSQL.
Desarrollar aplicación C# para acceso a MySQL Server de forma nativa con ADO.NET Driver for MySQL (Connector/NET)Abriremos Microsoft Visual Studio .Net 2010, pulsaremos en el menú "Archivo" - "Nuevo proyecto", seleccionaremos "Visual C#", indicaremos un nombre para la solución, por ejemplo "AjpdSoftAccesoMySQLCSharp": Añadiremos una referencia a la librería de MySQL ADO.NET (Connector/NET), para ello pulsaremos en el menú "Proyecto" - "Agregar referencia": Buscaremos el fichero "MySql.Data.dll" en la carepta de instalación de ADO.NET Driver for MySQL (Connector/NET): Añadiremos todos los componentes al formulario de la aplicación C#, usaremos varios TextBox para introducir el servidor, usuario, puerto, contraseña y SQL a ejecutar. Añadiremos ComboBox para mostrar los esquemas (bases de datos) y las tablas y varios Button. Añadiremos también un DataGridView para mostrar el resultado de las consultas SQL:
Añadiremos en el código la cláusula:
y añadiremos la declaración de la conexión dentro de la clase del formulario:
El código C# completo de la aplicación (para los botones de conectar con servidor, usar esquema, añadir select SQL y ejecutar consulta SQL, así como las funciones para obtener las bases de datos de MySQL y las tablas de la base de datos seleccionada se muestra a continuación: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using MySql.Data.MySqlClient; namespace AjpdSoftAccesoMySQLCsharp { public partial class formAccesoMySQL : Form { private MySqlConnection conexionBD; private void obtenerBasesDatosMySQL () { MySqlDataReader registrosObtenidosMySQL = null; MySqlCommand cmd = new MySqlCommand("SHOW DATABASES", conexionBD); try { registrosObtenidosMySQL = cmd.ExecuteReader(); lsBD.Items.Clear(); while (registrosObtenidosMySQL.Read()) { lsBD.Items.Add(registrosObtenidosMySQL.GetString(0)); } } catch (MySqlException ex) { MessageBox.Show("Error al obtener bases de datos de MySQL: " + ex.Message,"Error al obtener catálogos", MessageBoxButtons.OK,MessageBoxIcon.Error); } finally { if (registrosObtenidosMySQL != null) registrosObtenidosMySQL.Close(); } } private void obtenerTablasBDMysql(string bd) { MySqlDataReader reader = null; try { conexionBD.ChangeDatabase(bd); MySqlCommand cmd = new MySqlCommand("SHOW TABLES", conexionBD); reader = cmd.ExecuteReader(); lsTablas.Items.Clear(); while (reader.Read()) { lsTablas.Items.Add(reader.GetString(0)); } } catch (MySqlException ex) { MessageBox.Show("Error al obtener la lista de tablas " + "de la BD de MySQL: " + ex.Message,"Error obtener tablas", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (reader != null) reader.Close(); } } public formAccesoMySQL() { InitializeComponent(); } private void btConectar_Click(object sender, EventArgs e) { if (conexionBD != null) conexionBD.Close(); string connStr = String.Format("server={0};port={1};user id={2}; password={3}; " + "database=mysql; pooling=false;" + "Allow Zero Datetime=False;Convert Zero Datetime=True", txtServidor.Text,txtPuerto.Text, txtUsuario.Text, txtContrasena.Text); try { conexionBD = new MySqlConnection(connStr); conexionBD.Open(); obtenerBasesDatosMySQL(); } catch (MySqlException ex) { MessageBox.Show("Error al conectar al servidor de MySQL: " + ex.Message, "Error al conectar", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void btSelectSQL_Click(object sender, EventArgs e) { txtSQL.Text = "select * from " + lsTablas.Text; } private void btUsarEsquema_Click(object sender, EventArgs e) { obtenerTablasBDMysql(lsBD.Text); } private void btEjecutar_Click(object sender, EventArgs e) { if (opDatos.Checked) { DataTable tabla; MySqlDataAdapter datosAdapter; MySqlCommandBuilder comandoSQL; try { tabla = new DataTable(); datosAdapter = new MySqlDataAdapter(txtSQL.Text, conexionBD); comandoSQL = new MySqlCommandBuilder(datosAdapter); datosAdapter.Fill(tabla); dbGrid.DataSource = tabla; } catch (Exception ex) { MessageBox.Show("Error al mostrar los datos de la tabla [" + lsTablas.Text + "] de MySQL: " + ex.Message, "Error ejecutar SQL", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (opNoDatos.Checked) { try { int numeroRegistrosAfectados = 0; MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conexionBD; cmd.CommandText = txtSQL.Text; cmd.Prepare(); numeroRegistrosAfectados = cmd.ExecuteNonQuery(); MessageBox.Show("Consulta de modificación de datos " + "ejecutada, número de registros afectados: " + Convert.ToString(numeroRegistrosAfectados) + ".", "Consulta SQL ejecutada", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Error ejecutar consulta de " + "modificación de datos: " + ex.Message, "Error ejecutar SQL", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void linkAjpdSoft_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("http://www.ajpdsoft.com"); } } } AjpdSoft Acceso MySQL con ADO.NET en C# en funcionamientoA continuación explicamos cómo funciona AjpdSoft Acceso MySQL con ADO.NET en C#. En primer lugar introduciremos los datos del servidor de MySQL Server al que nos conectaremos:
Tras introducir los datos de conexión pulsaremos en el botón "1 Conectar con servidor", si los datos son correctos y el servidor está disponible, la aplicación obtendrá los catálogos (bases de datos) del servidor de MySQL Server (a los que el usuario tenga permisos): Seleccionaremos el catálogo (esquema o base de datos) que usaremos en "Usar el esquema (BD)": Pulsaremos en "2 Usar el esquema", si todo es correcto la aplicación obtendrá todas las tablas del esquema seleccionado: Seleccionaremos la tabla que usaremos para la consulta SQL y pulsaremos "3 Select (SQL) de la tabla": Introduciremos la consulta SQL que queramos (o dejaremos la de defecto "select * from nombre_tabla), marcaremos "Devuelve datos" y pulsaremos "Ejecutar": Si la consulta SQL es correcta la aplicación mostrará el resultado en el grid de datos: Para ejecutar una consulta SQL de actualización de datos (update, delete, insert, drop, create) marcaremos el "No devuelve datos": Para este tipo de consultas SQL la aplicación devolverá el número de registros afectados:
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft. Anuncios
Enviado el Domingo, 02 diciembre a las 20:42:21 por ajpdsoft
|
|