Bueno, ahora voy a mostrarles como conectarse a una base de datos de MySql usando Visual Studio 2005, usando VB.Net y C#. En fin, lo que necesitamos primeramente es el conector para MySql que es un proveedor de datos hecho por terceros (no lo hizo la gente de microsoft). En fin, vamos a esta web: http://dev.mysql.com/downloads/connector/net/5.0.html, en este caso bajare el conector en su version 5.0.9. Bueno, una vez descargado, nos dirigimos al directorio de nuestra descargar, y ejecutamos mysql-connector-net-5.0.9.exe. Bueno, tal vez algunos descarguen una version pasada, o mas reciente pero la forma de hacer las cosas no cambiara, ya que los proveedores de base de datos que quieren trabajar con .NET deben obedecer la implementacion de interfaces de .NET, todo esto para evitar problemas. Les explico esto, .NET tiene proveedores de acceso a datos para SqlServer, para conexiones ODBC, OLEDB e incluso para Oracle, para MySql, tenemos la que nos provee MySql, que ya descargamos. Ahora todos estos proveedores tendran las siguientes clases: Connection, Command, DataReader, DataAdapter que son las principales. En fin, no se llamaran Connection simplemente, mas bien comenzaran por el nombre del proveedor, SqlConnection, SqlCommand, etc para Sql Server, MySqlConnection, MySqlCommand, etc para MySql que es lo que ahora nos interesa. Los metodos que tengan seran los mismos, habiendo exepciones que dependen del proveedor, pero la idea es la misma.
Una vez esto, pasamos a lo practico, ejecutamos el archivo .exe que descargamos, si desconfian, en la pagina web de mysql tienen la suma hash del archivo, asi que ustedes pueden comprobarlo. Una vez instalado vamos a Visual Studio y creamos un nuevo proyecto.
Para C#
Para VB.net
Una vez esto debemos agregar la referencia a el conector de mysql que acabamos de instalar, para eso vamos a nuestro explorador de soluciones, y en referencias, hacemos click derecho y Agregar Referencia o Add Reference para Visual Studio en ingles.
Para C#:
Para VB.net
Una vez hecho eso, vamos a la pestaña Examinar o Browse y nos vamos al directorio donde instalamos nuestro conector, por defecto se encuentra en: C:\Archivos de programa\MySQL\MySQL Connector Net 5.0.9\Binaries\.NET 2.0, en este caso estoy buscando la dll, bueno una vez la encontremos la seleccionamos y aceptanos. Bueno lo que haremos ahora es arrastrar un DataGridView a nuestro formulario, y un boton. (OJO!!, el control datagridview esta en la caja de herramientas en la pestaña datos. El objetivo de esto es que cuando presionemos el boton nos despliegue en el DataGridView los datos de una tabla en nuestra base de datos.
Control DataGridView:
Ahora vamos al codigo de nuestro formulario presionando F7, bueno esto es mas comodo para mí, pero ustedes pueden ver la forma de ir al codigo, dando doble click al boton, por el explorador de soluciones, etc. Bueno, una vez en el código, en la parte de importaciones using en C# y imports en VB.net, importamos las librerias de nuestro conector, y la libreria genérica para acceso a datos, es decir System.Data, donde se encuentrar las clases DataTable, DataRow, DataSet, etc que son independientes del origen de datos que usemos.
En C# sería:
En C# sería:
public DataTable DevuelveProductos() { MySqlConnection conn = new MySqlConnection(cadenaConexion); string sql = "select * from productos"; MySqlCommand cmd = new MySqlCommand(sql, conn); DataTable tblProdcutos = null; try { // Abrimos la conexion con nuestro servidor conn.Open(); // Ejecutamos nuestra consulta de seleccion MySqlDataReader reader = cmd.ExecuteReader(); tblProdcutos = new DataTable(); // Cargamos la informacion que nos devolvio la // base de datos en un DataTable tblProdcutos.Load(reader); // Una buena practica es cerrar el DataReader, ya que // si no lo cerramos, no podemos usar esta conexion en // este metodo reader.Close(); } catch (Exception ex) { MessageBox.Show("Error en tiempo de ejecucion"); } finally { // De igual modo, siempre es bueno cerrar // la conexion este o no este abierta. conn.Close(); } return tblProdcutos; }
En VB.net sería:
Public Function DevuelveProductos() As DataTable Dim conn As New MySqlConnection(cadenaConexion) Dim sql As String = "select * from productos" Dim cmd As New MySqlCommand(sql, conn) Dim tblProductos As DataTable = Nothing Try conn.Open() Dim reader As MySqlDataReader reader = cmd.ExecuteReader() tblProductos = New DataTable() tblProductos.Load(reader) reader.Close() Catch ex As Exception MessageBox.Show("Error en tiempo de ejecucion") Finally conn.Close() End Try Return tblProductos End Function
Ahora vamos a nuestro formulario, y le damos doble click a nuestro boton, para ir al evento "Click de nuestro boton" es decir, lo que pongamos en este método, es lo que pasará cuando presionemos el boton. Ahora lo unico que tenemos que hacer es poner dentro del método que controla este evento es lo siguiente:"dataGridView1.DataSource = DevuelveProductos();" dejando el codigo así:
En C# sería:
private void button1_Click(object sender, EventArgs e) { dataGridView1.DataSource = DevuelveProductos(); }
En VB.net sería:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DataGridView1.DataSource = DevuelveProductos() End Sub
Bueno, como el objetivo de este tutorial era el de sólo mostrar, como conectarse a un base de datos en MySql, creo q eso es, todo, pero, en caso que ustedes quieran ejecutar una consulta de insercion, modificacion o eliminacion, tendriamos un codigo como esto:
En C# sería:
public void EjecutarDML() { MySqlConnection conn = new MySqlConnection(""); // Consulta de insercion, modificacion o eliminacion string sql = ""; MySqlCommand cmd = new MySqlCommand(sql, conn); try { conn.Open(); // Ejecutar consulta de ins, mod o eli int numeroFilasAfectadas; numeroFilasAfectadas = cmd.ExecuteNonQuery(); } catch (Exception ex) { //Error } finally { conn.Close(); } }
En VB.net sería:
Public Sub EjecutarDML() Dim conn As New MySqlConnection("") Dim sql As String = "consulta de adi, modi, eli" Dim cmd As New MySqlCommand(sql, conn) Try conn.Open() Dim numeroFilasAfectadas As Integer numeroFilasAfectadas = cmd.ExecuteNonQuery() Catch ex As Exception ' error!! Finally conn.Close() End Try End Sub
Bueno, ahora si creo que esto es todo. Este pequeño tuto va dedicado para mis amigos de la Comunidad Portal Hacker.
No hay comentarios:
Publicar un comentario