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.NET.
- Desarrollar aplicación C# para acceso a MySQL Server de forma nativa con ADO.NET Driver for MySQL (Connector/NET).
- AjpdSoft Acceso MySQL con ADO.NET en C# en funcionamiento.
- Artículos relacionados.
- Créditos.
Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual C# .Net y driver Connector/Net ADO.NET
A 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:
- Suite de desarrollo Microsoft Visual Studio .Net 2010: en el siguiente tutorial explicamos cómo instalar este entorno de desarrollo de aplicaciones .Net:
- Driver Connector/Net de MySQL: necesitaremos las librerías proporcionadas por MySQL para acceso nativo desde .Net, disponibles en el sitio web oficial de MySQL, en la URL:
http://dev.mysql.com/downloads/connector/net
En nuestro caso descargaremos la versión 6.6.4 y la plataforma (Select Platform) "Microsoft Windows", descargaremos "Windows (x86, 32-bit), MSI Installer" (mysql-connector-net-6.6.4.msi):
Ejecutaremos el fichero mysql-connector-net-6.6.4.msi descargado:
Pulsaremos en "Ejecutar" en la ventana de Advertencia de seguridad de Abrir archivo:
Se iniciará el asistente de instalación de MySQL Connector Net 6.6.4, pulsaremos "Next":Pulsaremos en "Custom" para realizar una instalación personalizada:Los componentes a instalar:
- Entity Framework Support.
- Core Components.
- Documentation.
- Web Providers.
- Compact Framework Support.
- Visua Studio Integration.
- Samples.
Pulsaremos "Nex" para continuar con la instalación de MySQL Connector Net:Pulsaremos "Install" para iniciar la instalación definitiva de MySQL Connector Net:Tras la instalación de MySQL Connector Net 6.6.4, el asistente nos indicará que la instalación ha finalizado. Pulsaremos "Finish":
- Servidor con MySQL Server: necesitaremos, obviamente, un equipo con el motor de base de datos MySQL instalado y funcionando. En los siguientes enlaces mostramos algunos ejemplos sobre cómo montar un servidor de MySQL Server en varios sistemas operativos:
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:
La descarga gratuita del código fuente completo: AjpdSoft Acceso MySQL con ADO.NET en C#.
Añadiremos en el código la cláusula:
using MySql.Data.MySqlClient;
y añadiremos la declaración de la conexión dentro de la clase del formulario:
private MySqlConnection conexionBD;
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 funcionamiento
A 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:
- Servidor: ip o nombre DNS (hostname) del servidor con MySQL Server.
- Puerto: puerto por el que nos conectaremos, por defecto para MySQL 3306.
- Usuario: usuario de MySQL Server con permisos suficientes.
- Contraseña: contraseña del usuario anterior.
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
- AjpdSoft Acceso MySQL con ADO.NET en C#.
- Capturar pantalla screenshot con Visual C#.
- Separar páginas pdf en un pdf por cada página con PDFsharp y Visual C# C Sharp.
- Extraer texto y metadatos de fichero PDF con Visual C# .Net y iTextSharp.
- Instalar Microsoft Visual Studio .Net 2010 y desarrollar aplicación con acceso a PostgreSQL.
- Convertir texto a PDF con iTextSharp y Visual Basic .Net VB.Net.
- Generar y leer códigos QR Quick Response Barcode con Visual Basic .Net VB.Net.
- Cómo desarrollar una aplicación de servicio en Windows con Visual Basic .Net.
- Estructura del código de barras EAN 13 y ejemplo en Delphi de obtención de datos.
- AjpdSoft Generador de códigos de barras.
- AjpdSoft extraer texto PDF Delphi.
- AjpdSoft Convertir Texto a PDF VB.Net.
- AjpdSoft Indexar Texto PDF C# iTextSharp.
- AjpdSoft Separar Páginas PDF código fuente Visual C# .Net.
- AjpdSoft Socket VB.Net.
- AjpdSoft Envío SMS VB.Net.
- AjpdSoft Inventario PCs - Código fuente Delphi.
- AjpdSoft Insertar Evento Google Calendar VB.net.
- AjpdSoft Envío EMail SSL VB.Net.
- AjpdSoft Conexión BD Visual Basic .Net.
- Desarrollar aplicación lector de códigos de barras para Android con App Inventor.
- Metadatos, cómo eliminarlos, cómo consultarlos, peligrosos para la privacidad.
- Insertar evento de Google Calendar con Visual Basic .Net y Google Data API.
- Crear proceso en segundo plano con barra de progreso en Visual Basic .Net VB.Net.
- Instalar Visual Studio 2010 y desarrollar aplicación con acceso a PostgreSQL.
- El control de errores en Visual Basic .Net.
- Acceso a MySQL mediante Visual Basic .Net y ODBC.
- Acceso a Oracle mediante Microsoft Visual Basic, RDO y ODBC.
- Insertar y extraer documentos en una tabla Oracle con Visual Basic 6.
- Cambiar marcadores de Word por valores del formulario de una aplicación.
- Exportar ListView a fichero CSV VB.Net.
- Función para reemplazar una cadena de texto dentro de otra - Visual Basic.
- Funciones para leer y escribir en ficheros INI VB.Net.
- Artículos, manuales y trucos del Proyecto AjpdSoft sobre Microsoft Visual Studio.
- Todos los programas con código fuente en Visual Basic.
- Foro del Proyecto AjpdSoft sobre Visual Basic, Visual C# C Sharp, VB.Net.
- Cómo instalar MySQL Server en Windows XP.
- Cómo instalar MySQL Server 6.0 Alpha en Windows XP.
- Instalar y configurar MySQL Server 5 en Linux Suse 10.
- Cómo instalar MySQL Server en Linux y permitir conexiones remotas.
- Instalar y configurar MySQL Server 5 en Linux Suse 10.
- Manual SQL con ejemplos de sentencias SQL Oracle.
- Exportar una tabla Microsoft Access a MySQL.
- Cómo cargar un fichero de texto plano en una tabla MySQL.
- Definición IDE.
- Definición URL.
- Definición SQL.
- Definición OLE DB.
- Definición ODBC.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.
No hay comentarios:
Publicar un comentario