Instituto Tecnológico de Ciudad Constitución. Ensayo conexión MySql VB2008 Taller de Bases de Datos Materia Ingeniería en sistemas computacionales. Especialidad José Alfredo Alvarez Avilés Presenta Cd. Constitución B.C.S., a 16 de diciembre de 2009 Conexión MySql con visual basic 2008 Para establecer una conexión entre myql y cualquier visual del que se esté haciendo uso, es necesario contar con un conector. ¿Qué es el conector?, el conector es el software que establece una comunicación entre vb y mysql, haciendo posible la visualización y manejo de bases de datos en vb. Para establecer la comunicación es necesario que el conector este instalado en el equipo, el conector empleado para vb 2008 serie la versión 5.2 o la 6.1. Mysql y vb son aplicaciones software de diferentes compañías, he ahí el uso de un conector. La función del conector en si es la de traducir e interpretar la comunicación entre vb y mysql. Inserción de datos La inserción de los datos es muy sencilla, para establecer la conexión se usa mysqlconection (ruta), dentro del paréntesis se escribe la ruta de nuestra base de datos. Hacemos uso de mysqlcommand (consultas, ruta), se llama a los elementos de la tabla en mysql. Mysqlreader que permite leer datos, básicamente utiliza un select para obtener los registros de la tabla. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If bandera = "instituto de la juventud de comondu" Then Dim cad As String = "Database=chequera;Data Source=" + coneccion + ";User Id=root;Password=oscarelias" Dim query As String = "select saldo from instituto_de_la_juventud_de_comondu" Dim cnn As New MySqlConnection(cad) Dim comando As New MySqlCommand(query, cnn) Dim dato As MySqlDataReader Dim ds As New DataSet cnn.Open() El código muestra un ejemplo de conexión entre vb y mysql El código tiene dos parámetros principales para la conexión el parámetro cad y el parámetro query. En cad se almacena la ruta, que está constituida por la base de datos, el origen de datos que en este caso se llama coneccion, un usuario y una contraseña. El data source u Origen de datos es la conexión que existe a la fuente de datos (BD, tablas etc.). En query se almacenan las consultas, en este caso solo se hará al campo saldo. Y biene lo bueno Dim agregar As String = "insert into instituto_de_la_juventud_de_comondu(folio,nombre,cantidad,fecha,concep to,banco,saldo,pagado) values(@folio,@nombre,@cantidad,@fecha,@concepto,@banco,@saldo,@pagado )" Dim insert As New MySqlCommand(agregar, cnn) insert.Parameters.Add(New MySqlParameter("@folio", MySqlDbType.Int64)) insert.Parameters("@folio").Value = FOLIOTextBox.Text insert.Parameters.Add(New MySqlParameter("@nombre", MySqlDbType.String)) En este código inserta valores a los campos de cada tabla En este fragmento de código se visualiza el parámetro agregar el cual se encarga de almacenar la instrucción insert into del mysql con cada uno de sus campos. Las @ al comienzo de cada campo es para definirlos como lo que son, parámetros y vb no lo tome como datos. Un objeto de nombre insert que está creando un comando de tipo mysql con el parámetro agregar y la conexión guardada en el parámetro cnn del código anterior. insert.Parameters.Add(New MySqlParameter("@folio", MySqlDbType.Int64)) Esta instrucción nos dice que insert que es de tipo mysqlcommand, esta agregando un nuevo parámetro mysql llamado folio de tipo string. insert.Parameters("@folio").Value = FOLIOTextBox.Text Esta instrucción informa, que se agregaran los datos de la caja de texto de nombre FOLIOTextBox.text a “folio” que es un parámetro que pertenece a mysql. Cabe mencionar que esto es solo para agregar datos a un solo campo, tiene que hacerse lo mismo para cada campo. insert.Parameters.Add(New MySqlParameter("@nombre", MySqlDbType.String)) insert.Parameters("@nombre").Value = NOMBRETextBox.Text insert.Parameters.Add(New MySqlParameter("@cantidad", MySqlDbType.Int64)) insert.Parameters("@cantidad").Value = CANTIDADTextBox.Text 'insert.ExecuteNonQuery() 'insert.Connection.Close() insert.Parameters.Add(New MySqlParameter("@fecha", MySqlDbType.String)) Consultando los datos De la misma forma ya antes mencionada en este código también se tiene una conexión con la base de datos a utilizar. Private Sub EGRESOSPROVEEDORESToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EGRESOSPROVEEDORESToolStripMenuItem1.Click Dim cad As String = "Database=chequera;Data Source=" + coneccion + ";User Id=root;Password=oscarelias" Dim query As String = "select * from egresos_proveedores" Dim cnn As New MySqlConnection(cad) Dim da As New MySqlDataAdapter(query, cnn) Dim ds As New DataSet cnn.Open() da.Fill(ds, "cheques") DataGridView1.DataSource = ds DataGridView1.DataMember = "cheques" cnn.Close() End Sub Una de las diferencias que contiene este código es la utilización de un dataset y un mysqldataadapter. El dataset es una memoria de datos que recupera los datos de un datasource y este dataset está guardado en una variable ds. Mysqldataadapter es un objeto de tipo command que es el encargado de recuperar los datos. Dim da As New MySqlDataAdapter(query, cnn) Esta línea se encarga de recuperar los datos de la tabla. da.Fill(ds, "cheques") Esta linea se encarga de llenar el dataset con el nombre cheques, el nombre es el de la columna o el de la tabla que se esten mostrando los datos. DataGridView1.DataSource = ds DataGridView1.DataMember = "cheques" En estas lineas de codigo muestras los datos y el nombre de la tabla en un datagridview. (Son las tres de la mañana profe tengo flojera de escribir) Borrando los datos, ¡¡¡por fin!!!. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If NOMBRETextBox.Text = "cambio de propietario" Then Dim cad As String = "Database=chequera;Data Source=" + coneccion + ";User Id=root;Password=oscarelias" Dim query As String = "delete from cambio_de_propietario where FOLIO=" + FOLIOTextBox.Text Dim cnn As New MySqlConnection(cad) Dim comando As New MySqlCommand(query, cnn) cnn.Open() comando.ExecuteNonQuery() cnn.Close() MsgBox("DATOS BORRADOS CON EXITO", MsgBoxStyle.DefaultButton3, "MENSAJE") FOLIOTextBox.Clear() NOMBRETextBox.Clear() End If Si han dado cuenta el query de los tres ejemplos ha ido cambiando, esto se debe a las consultas que se hacen en mysql, esto significa que estamos trabajando de una manera abstracta por así decirlo con mysql. Dim query As String = "delete from cambio_de_propietario where FOLIO=" + FOLIOTextBox.Text Desde esta parte del código se manda borrar el registro y la caja de texto.