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