El post que buscas se encuentra eliminado, pero este también te puede interesar

conectando MySQL con .net (oledb??)

cuando programas con el .net framework es muy facil conectarse a bases de datos de sql server usando oledb, sin embargo, es posible que te topes con la necesidad de conectarte a una base de Mysql y si no tienes mucha paciencia y/o experiencia en el ambito de las conexiones vas a pasar al menos cinco minutos de dolor de cabeza. (y digo 5 minutos porque al final es muy sencillo y nada complicado).

en las paginas de soporte aconsejan usar odbc pero no me convence mucho depender de un origen de datos, ademas, deberiamos hacer todo bajo codigo sin usar asistentes para conservar la elegancia de la programacion.

ANTES DE CONTINUAR LEYENDO.
asumo que:
- tienes un servidor web corriendo y soportando paginas aspx
- estas habituado con .net
- podria poner solo el codigo de las funciones pero supongo que si alguien busca informacion hay que proporcionarle lo mas que se pueda y no solo limitarnos a decirle la solucion sin los pasos previos, por eso me extiendo la explicacion un poco mas de lo normal.

como siempre, primero mis caracteristicas de mi equipo y configuracion:
- Windows 7 home premium (funciona con xp, y todas las versiones de 7, starter no he probado)
- Mysql 5.5.11
- Mysqlyog (no es necesario para la conexion pero desde aqui vamos a gestionar la base de manera grafica)
- mysql-connector-net-6.2.4 (el espacio MySql.Data para conectarnos a la base de datos)
- Visual Web Developer (visual basic) sera usado en el ejemplo (podria ser un visual studio.net)
- apache
- mod_aspdotnet

los programas los pueden buscar en la web y aparecen rapido, pero como siempre hay mas de un huevon (y lo digo por ser mexicano) pueden descargar los archivos de esta direccion: http://huleronetfiles.sytes.net ... servidor activo solo durante el dia.

PRIMERO instala los programas; dado que es un ejemplo del acceso a datos, no voy a detallar los pasos para instalar y configurar los programas y la base de datos.

usando mySQLyog o desde la consola de mysql:
1- crea una base de datos en mysql llamada tuxes
2- crea dentro de tuxes una tabla llamada usuarios con los sig campos:
- id_tux int auto incremental
- nombre varchar 20
- edad int
y guardas la tabla.
3- metele unos datos, al menos 3, por ejemplo:
jose 20
maria 25
pedro 16
4- siempre es bueno realizar una consulta para verificar los datos introducidos.
y hasta aqui con la base de datos.

SEGUIDAMENTE vamos a abrir el visual web developer y creamos un sitio asp.net vacio
- antes de cualquier cosa, vamos a agregar una referencia al sitio
- en el explorador de soluciones hacemos click con el boton derecho encima del sitio y escogemos agregar referencia
- en el cuadro de referencias vamos a .net y ahi buscamos el componente MySql.Data (v. 6.2.4.0 si bajaron el archivo de aqui mismo)
- aceptamos y ya tenemos la referencia agregada al sitio.
- agregamos un nuevo web form y le dejamos el nombre default.aspx
- abrimos el archivo default.aspx.vb

AHORA LAS FUNCIONES
- aqui vamos a crear una FUNCION llamada mysqlQUERY que devolvera una tabla con los resultados de la consulta:
Private Function mysqlQUERY(ByVal strMySQL As String) As System.Data.DataTable
Dim dt As New System.Data.DataTable ' la tabla que nos va a servir para almacenar el resultado de la consulta
Dim strCNX As String ' la cadena de conexion hacia mysql

strCNX = "server=localhost;user=root;database=tuxes;port=3306;password=tu_password;" ' no olvides cambiar tu pass y user de mysql
Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter(strMySQL, strCNX) 'al adapter
da.Fill(dt) ' llenamos la tabla
Return dt
End Function

- y ahora un procedimiento para EJECUTAR INSTRUCCIONES sql
Private Sub mysqlExecute(ByVal strMySQL As String)
Dim strCNX As String
Dim cnx As New MySql.Data.MySqlClient.MySqlConnection

strCNX = "server=localhost;user=root;database=tuxes;port=3306;password=tu_password;" ' no olvides cambiar tu pass y user de mysql
cnx.ConnectionString = strCNX
cnx.Open()
If cnx.State = Data.ConnectionState.Open Then
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(strMySQL, cnx) ' construimos el comando
cmd.ExecuteNonQuery()
cmd.Dispose()
End If
cnx.Close()
cnx.Dispose()
End Sub

el codigo es muy basico y aun hay que ponerle su try.. catch... finally pero asi lo vamos a usar para no confundirnos.

SI EL ESPACIO MySql.Data no te aparece es que no has agregado la referencia correcta o podria ser que no has instalado el mysql-connector-net-6.2.4. deberias asegurarte por ambos casos.

- con las dos funciones anteriores podemos gestionar la base de datos casi por completo. aqui va la manera de hacerlo:
- inserta un boton llamado cmdQuery y un label llamado lblResults en la pagina default.aspx
- haz doble click encima del boton y se abrira el archivo default.aspx.vb con un nuevo procedimiento para el evento click del boton cmdQuery. ahi vamos a poner el codigo para la consulta y quedaria mas o menos asi:

Protected Sub cmdQuery_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdQuery.Click
Dim strQuery As String
Dim dtt As New System.Data.DataTable

strQuery = "select * from usuarios"
dtt = mysqlQUERY(strQuery)
If dtt.Rows.Count > 0 Then
For Each r As System.Data.DataRow In dtt.Rows
Me.lblResults.Text += "<br/>" & r.Item(0).ToString & " - Nombre: " & r.Item(1).ToString & " Edad: " & r.Item(2).ToString
Next
Else
Me.lblResults.Text = "No hay resultados."
End If
dtt.items.clear
dtt.dispose
End Sub

- luego ejecutas tu pagina, haces click en el boton y si te muestra los registros que insertaste manualmente quiere decir que todo ha estado bien.

- faltaria el ejemplo para la insercion pero como es mas sencillo nomas voy a decir que:
- agregas un boton mas que se llame cmdInsert y dos textbox's llamados nombre y edad respectivamente
- en el evento del boton cmdInsert pones algo como esto:
dim strMySQL as string
strMySQL = "insert into usuarios(nombre, edad)values('" & me.txtNombre.tex & "','" & me.txtEdad.tex & "')"
mysqlExecute(strMySQL)

que les vaya mu' bonito muchachitos.

2 comentarios - conectando MySQL con .net (oledb??)

kaysinho
Quiero hacer una consulta de un Textbox a una base de datos, que muestra los registros en un GRIDVIEW... No me deja agregar OleBD Como referenca... Porque?