El documento describe un programa en Visual.Net para realizar operaciones básicas de CRUD (crear, leer, actualizar, eliminar) en una base de datos MySQL. Incluye subrutinas para leer, modificar, eliminar y agregar registros, así como una clase MySql que contiene funciones para conectarse a la base de datos y ejecutar consultas SQL.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Conexion mysql y usos
1. Programación Científica: Visual.Net
Unidad V
Leer (Buscar) Modificar Eliminar Agregar
Private Sub Leerlo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Leer.Click
Dim sql As New MySql
Dim Dt As System.Data.DataTable
Dt = sql.LEER("SELECT * FROM Tiposdoc")
Dim A As String
If Dt.Rows.Count = 0 Then
MsgBox("Registro NO ENCONTRADO")
Exit Sub
Else
'LOS RESULTADOS QUEDAN EN DT
'Cada columna de la tabla se referncia en
'Dt.Rows(numero de fila).ItemArray(numero de
columna).toString
' Ejemplo: Dt.Rows(0).ItemArray(0).ToString
'Seria la primer fila y columna encontrada
'En cambio si deseamos recorrer la tabla para cargar un combo
For x = 0 To Dt.Rows.Count - 1
A = Dt.Rows(x).ItemArray(0).ToString
Next x
End If
End Sub
Private Sub modificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Modificar.Click
Dim sql As New MySql
Dim res As Integer = sql.INSERT_UPDATE_DELETE("UPDATE tiposdoc
SET descripcion = 'nada' WHERE id= 1")
If res = 0 Then
MsgBox("No pude MODIFICAR EL REGISTRO")
End If
End Sub
Private Sub eliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Eliminar.Click
Dim sql As New MySql
Dim res As Integer = sql.INSERT_UPDATE_DELETE("DELETE FROM
Tiposdoc WHERE id = 1")
If res = 0 Then
MsgBox("No pude BORRAR EL REGISTRO")
End If
End Sub
Private Sub agregar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Agregar.Click
Dim sql As New MySql
Unidad V
2. Programación Científica: Visual.Net
Unidad V
Dim res As Integer = sql.INSERT_UPDATE_DELETE("INSERT INTO
tiposdoc (nombres columnas separados por ,) VALUES(' " & valor para
columna & "',valor,valor)")
End Sub
La Clase MySql
Imports System.Data
Imports MySql.Data.MySqlClient
Public Class MySql
Dim ConStr As String =
"server=localhost;uid=root;password=gabriel1;database=General"
'instanciamos un objeto conexion
'y le pasamos de parametro la variable con la cadena
Dim Con As New MySqlConnection(ConStr)
'Instrucción a ejecutar
Public Function LEER(ByVal Str_Sql As String) As DataTable
'creamos el objeto comando y le pasamos el parámetro que contiene
la query y la conexion
Dim Comando As New MySqlCommand(Str_Sql, Con)
'Try para capturar los errores
Try
'antes de abrir conexión nos aseguramos que no exista
conexión establecida previa
If Not Con Is Nothing Then
Con.Close()
End If
'abrimos conexión
Con.Open()
'declaramos la variable de tipo entero que contendrá las
filas afectadas y ejecutamos
'el comando
Dim Dt As New DataTable
'adaptador que sirve de enlace intermedio entre la aplicación
y la
'base de datos
Dim Da As New MySqlDataAdapter(Str_Sql, Con)
Dim res As Integer = Comando.ExecuteNonQuery()
Dim Cmd As New MySqlCommandBuilder(Da)
'llenamos la tabla
Da.Fill(Dt)
Return Dt
Dt.Clear()
Catch ex As Exception
Dim Dt As New DataTable
Return Dt
MsgBox(ex.Message)
Finally
'cerramos la conexión
Con.Close()
Unidad V
3. Programación Científica: Visual.Net
Unidad V
'y esto es muy importante, el objeto comando que habiamos
creado
'lo eliminamos de la memoria
Comando = Nothing
'finalizamos la captura de errores
End Try
End Function
Public Function INSERT_UPDATE_DELETE(ByVal Str_Sql As String) As
String
' NOTA: en res devolvemos el nº de filas afectadas si es correcto
o
' cero si no pudimos insertar
'
' res debería consultarse luego de invocar la función
' forma de uso: dim res as integer =
INSERT_UPDATE_DELETE("LA INSTRUCCION SQL")
' if res = 0 then
' MsgBox ("No pude ejecutar la
instrucción SQL")
' end if
'creamos el objeto comando y le pasamos el parámetro que contiene
la query y la conexion
Dim Comando As New MySqlCommand(Str_Sql, Con)
'Try para capturar los errores
Try
'antes de abrir conexión nos aseguramos que no exista
conexión establecida previa
If Not Con Is Nothing Then
Con.Close()
End If
'abrimos conexión
Con.Open()
'adaptador que sirve de enlace intermedio entre la aplicación
y la
'base de datos
Dim Da As New MySqlDataAdapter(Str_Sql, Con)
Dim res As Integer = Comando.ExecuteNonQuery()
Return res.ToString
Catch ex As Exception
MsgBox(ex.Message)
Dim Res As Integer = 0
Return Res
Finally
'cerramos la conexión
Con.Close()
'y esto es muy importante, el objeto comando que habiamos
creado
'lo eliminamos de la memoria
Comando = Nothing
'finalizamos la captura de errores
End Try
End Function
Public Function BACKUP(ByVal archivo As String) As Boolean
Unidad V
4. Programación Científica: Visual.Net
Unidad V
Dim Dt As System.Data.DataTable
Dt = LEER("SELECT * FROM backup WHERE fecha = '" & archivo & "'")
If Dt.Rows.Count = 0 Then
Dim x As String
Dim comando As String
x =
My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINESOFTWAREMySQL ABMYSQL
Server 5.0", "Location", 0)
comando = x & "binmysqldump --user=root --password=mysql
--database base -r c:" & archivo & ".sql"
Dim ProcId As Integer = Shell(comando, AppWinStyle.Hide,
True)
If ProcId >= 0 Then
Dim res As Integer = INSERT_UPDATE_DELETE("INSERT INTO
backup (fecha) VALUES ('" & archivo & "')")
If res = 0 Then
MsgBox("No pude ejecutar el INSERT del backup")
End If
Else
Return False
Exit Function
End If
End If
Return True
End Function
End Class
Agregar Referencia MysqlData.dll al proyecto
Unidad V