Desde la conexión hasta la programación es muy fácil, ya que con respecto a ADO.NET no cambia, así que puedo programar con ADO.NET y conectarme a MySQL, Oracle, Access y demás bases de datos. Un modelo para todos.
1.- Acceder a la página de MySQL y descargar el conector que tiene soporte para Visual Studio 2008 . Yo descargué el 6.0 , existe uno el 6.1 pero aún esta beta. Si desean testear descarguen ese.
URL: http://dev.mysql.com/downloads/connector/net/6.0.html
2.- Deben tener instalado algún servidor, pueden descargar el community server de MySQL, pero si quieren evitar la fatiga de hacer estos pasos como lo muestran en este blog http://www.15seconds.com/issue/050210.htm y están usando el WAMP Server para desarrollar páginas PHP, pueden utilizar ese que ya tiene MySQL incluido.
3.- Después de tener instalado los 2 componentes anteriores, vamos a realizar de forma gráfica la conexión con Visual Studio 2008, en el explorador de servidores (Server Explorer). Escogemos el recurso de datos como MySQL DataBase.
Hasta este punto debimos crear una base de datos en MySQL y las tablas
.
4.- Crear un proyecto o sitio web ASP.NET
5.- Programar la clase de Datos.
Importar los siguientes namespaces desde referencias y en código.
C#
using System.Data; using MySql.Data; using MySql.Data.MySqlClient;
VB.NET
Imports MySql.Data Imports MySql.Data.MySqlClient
Quizás esta sea otra forma de programar con ADO.NET, lo adapté a un estilo de programación reutilizable. Usted puede aplicarlo en la práctica.
Método CrearComando().- Este método es reutilizable para poder crear comandos.
C#
public static MySqlCommand CrearComando() { string _cadenaConexion = " server = localhost; user id = root; database = myCompany"; MySqlConnection _conexion = new MySqlConnection(); _conexion.ConnectionString = _cadenaConexion; MySqlCommand _comando = _conexion.CreateCommand(); _comando.CommandType = CommandType.Text; return _comando; }
VB.NET
Public Shared Function CrearComando() As MySqlCommand Dim _cadenaConexion As String = " server = localhost; user id = root; database = myCompany" Dim _conexion As New MySqlConnection() _conexion.ConnectionString = _cadenaConexion Dim _comando As New MySqlCommand() _comando = _conexion.CreateCommand() _comando.CommandType = CommandType.Text Return _comando End Function
Método EjecutarComandoSelect(), Este metodo contiene un DataReader que lee todos los registros y carga la información a la tabla con la ayuda del evento ExecuteReader del comando.
C#
public static DataTable EjecutarComandoSelect(MySqlCommand comando) { DataTable _tabla; try { comando.Connection.Open(); MySqlDataReader _lector = comando.ExecuteReader(); _tabla = new DataTable(); _tabla.Load(_lector); _lector.Close(); } catch (Exception ex) { throw ex; } finally { comando.Connection.Close(); } return _tabla; }
VB.NET
Public Shared Function EjecutarComandoSelect(ByVal comando As MySqlCommand) As DataTable Dim _tabla As New DataTable() Try comando.Connection.Open() Dim _lector As MySqlDataReader _lector = comando.ExecuteReader _tabla.Load(_lector) _lector.Close() Catch ex As Exception Throw ex Finally comando.Connection.Close() End Try Return _tabla End Function
6.- Programar la clase Seleccionar, en esta clase recibimos una consulta de tipo String y devolvemos los datos en forma de tabla, para posteriormente mostrarlos.
C#
public static DataTable Obtener(string consulta) { MySqlCommand _comando =Datos.CrearComando(); _comando.CommandText=consulta; return Datos.EjecutarComandoSelect(_comando); }
VB.NET
Public Shared Function Obtener(ByVal consulta As String) As DataTable Dim _comando As MySqlCommand = Datos.CrearComando() _comando.CommandText = consulta Return Datos.EjecutarComandoSelect(_comando) End Function
7.- Crear una clase o modulo para colocar ahí y separar las consultas.
C#
public class Consultas { public static string consultarEmpleados="SELECT * FROM Empleados"; }
VB.NET
Module Consultas Public consultarEmpleados = "Select * from Empleados" End Module
8.- En el sitio web en Default.aspx o la página en donde deseen.
Agregamos un ListView al formulario, el diseño HTML es el mismo para ambos lenguajes.
HTML :
<asp:ListView ID="ListView1" runat="server"> <LayoutTemplate> <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder> </LayoutTemplate> <ItemTemplate> <br /> <asp:Label ID="Label1" runat="server" Text='<%# Bind("ID") %>'> </asp:Label> <br /> <asp:Label ID="Label2" runat="server" Text='<%# Bind("Nombre") %>'> </asp:Label> <br /> <asp:Label ID="Label3" runat="server" Text='<%# Bind("Salario") %>'> </asp:Label> <br /> </ItemTemplate> <ItemSeparatorTemplate> --------------------------------------- </ItemSeparatorTemplate> </asp:ListView>
El listview debe contar un un LayoutTemplate y en el colocar un PlaceHolder con el ID=”itemPlaceHolder” de otro modo les marcará error.
Dentro del itemTemplate vamos a colocar la información que mostrará, como lo vamos a ligar a la clase Seleccionar entonces utilizamos Bind o podemos ocupar Eval, es cuestión de lo que usteden desean.
En el archivo CodeFile del Default ya sea Default.aspx.cs o Default.aspx.vb
Cargamos la información como datasource del control ListView.
C#
protected void Page_Load(object sender, EventArgs e) { ListView1.DataSource = Seleccionar.Obtener(Consultas.consultarEmpleados); ListView1.DataBind(); }
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ListView1.DataSource = Seleccionar.Obtener(Consultas.consultarEmpleados) ListView1.DataBind() End Sub
Resultado:
Que sea de gran utilidad. Saludos.





Recent Comments