You are on page 1of 35

MANUAL DE PRÁCTICA

Este manual permite hacer una conexión de base de datos desde MySql a un lenguaje de
programación Visual Studio 2010.

 Antes de iniciar con el proceso de conexión debe de estar instalado el servidor y el apache
debe de estar corriendo, se puede utilizar el Appserv o en su caso WampServer; son
utilizados estos dos programas debido a que aquí se encuentran todos los paquetes para
configurar el servidor en una forma muy fácil e intuitiva.
 Desarrollar el proceso de conexión debe de ser instalado el conector de base de datos .net
(mysql-connector-net-6.5.4) puede ser descargado en forma gratuita en la página oficial de
MySql.
 Una vez instalado se debe de enlazar con Visual Basic del menú Proyecto, Agregar
referencias, seleccionar la ficha .Net.
 Aparece una lista de procesos y se debe de seleccionar Mysql.Data y dar click en el botón
Aceptar

1. Como primer paso es crear un proyecto en Visual Basic, Net y diseñar la interfaz de usuario.
2. A continuación se crea un módulo donde se va a realizar la conexión correspondiente hacia
la base de datos de MySql.
a. Dentro de este módulo se desarrolla el siguiente código fuente.

Módulo de Conexión

Imports MySql.Data.MySqlClient
Module conexion
Public conexion_mysql As MySqlConnection
Sub conexion_bd()
Try
conexion_mysql = New MySqlConnection("Data Source =localhost;
Database=dulceria; User ID=root; Password=Admin; Allow Zero Datetime=True;
CHARSET=latin1")
conexion_mysql.Open()
Catch ex As Exception
conexion_mysql.Dispose()
End Try
End Sub
End Module

Termina módulo de conexión

Código de Validación

Imports MySql.Data.MySqlClient

Public Class frminicio

Función de validación de espacios vacíos

Function ok() As Boolean


If (txtautor.Text <> "") And (txtcodigo.Text <> "") And (txtnombrelibro.Text
<> "") And (cmbeditorial.Text <> "") Then
ok = True
Else
ok = False
End If
End Function

3. Procedemos a realizar el código fuente dentro de la interfaz donde se va a efectuar las


diversas operaciones correspondientes.

Procedimiento de Limpiar
Sub limpiar()
txtcodigo.Text = ""
txtnombrelibro.Text = ""
cmbeditorial.Text = ""
txtautor.Text = ""
optbioquimica.Checked = False
optgempresarial.Checked = False
optindustrial.Checked = False
optinformatica.Checked = False
txtcodigo.Focus()
End Sub

Codigo fuente del botón limpiar


Private Sub cmdLimpiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdLimpiar.Click
Call limpiar()
End Sub

Codigo fuente del formulario del botón cerrar


Private Sub frminicio_FormClosing(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim op As MsgBoxResult

op = MsgBox("¿Desea salir?", MsgBoxStyle.YesNo, "Salir del Sistema")


If (op = MsgBoxResult.No) Then
e.Cancel = True
End If
End Sub

Codigo fuente del botón Guardar


Private Sub cmdAceptar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdAceptar.Click
Dim guardar As MySqlCommand

If ok() = True Then


guardar = New MySqlCommand("INSERT INTO libro(codigo,nomlib,
editorial,autor,esp)VALUES (?codigo, ?nomlib, ?editorial, ?autor, ?esp)")
guardar.Parameters.AddWithValue("?codigo", txtcodigo.Text)
guardar.Parameters.AddWithValue("?nomlib", txtnombrelibro.Text)
guardar.Parameters.AddWithValue("?editorial", cmbeditorial.Text)
guardar.Parameters.AddWithValue("?autor", txtautor.Text)
If (optbioquimica.Checked = True) Then
guardar.Parameters.AddWithValue("?esp", "Ingeniería Bioquímica")
End If

If (optgempresarial.Checked = True) Then


guardar.Parameters.AddWithValue("?esp", "Ingeniería en Gestión
Empresarial")
End If

If (optindustrial.Checked = True) Then


guardar.Parameters.AddWithValue("?esp", "Ingeniería Industrial")
End If

If (optinformatica.Checked = True) Then


guardar.Parameters.AddWithValue("?esp", "Ingeniería en Informática")
End If
guardar.Connection = conexion_mysql
guardar.ExecuteNonQuery()

MsgBox("Registro almacenado", MsgBoxStyle.Information, "Guardar")


Call limpiar()
Else
MsgBox("error esxisten en epacios vacios ", MsgBoxStyle.Critical,
"guardar")
Call limpiar()
End If
End Sub

Codigo fuente del botpon Salir


Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSalir.Click
Me.Close()
End Sub

Código fuente del formulario de Inicio


Private Sub frminicio_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call conexion_bd()
End Sub

Código fuente del botón Buscar


Private Sub cmdBuscar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBuscar.Click
Dim buscar As String
Dim consulta As MySqlDataReader

If (txtcodigo.Text <> "") Then


Try
buscar = "SELECT codigo,nomlib, editorial,autor,esp FROM libro WHERE
codigo=@codigo"
Dim leer_consulta As New MySqlCommand(buscar, conexion_mysql)
leer_consulta.Parameters.Add("@codigo", MySqlDbType.VarChar,
10).Value = txtcodigo.Text
consulta = leer_consulta.ExecuteReader

If (consulta.Read) Then
txtcodigo.Text = consulta.GetString(0).ToUpper
txtnombrelibro.Text = consulta.GetString(1).ToUpper
cmbeditorial.Text = consulta.GetString(2).ToUpper
txtautor.Text = consulta.GetString(3).ToUpper

If (consulta.GetString(4) = "Ingeniería Bioquímica") Then


optbioquimica.Checked = True
End If

If (consulta.GetString(4) = "Ingeniería en Gestión Empresarial")


Then
optgempresarial.Checked = True
End If

If (consulta.GetString(4) = "Ingeniería Industrial") Then


optindustrial.Checked = True
End If

If (consulta.GetString(4) = "Ingeniería en Informática") Then


optinformatica.Checked = True
End If
consulta.Close()
Else
MsgBox("La matricula no existe", vbCritical, "Buscar...")
Call limpiar()
consulta.Close()
End If
Catch ex As Exception
MsgBox("Error de consulta" & ex.Message)

End Try
Else
MsgBox("Error, escriba la matricula a buscar", vbCritical, "Buscar...")
Call limpiar()

End If
End Sub

Código fuente de modificar


Private Sub cmdModificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdModificar.Click
Dim seleccionar As String

If ok() = True Then


seleccionar = "UPDATE libro SET
codigo=@codigo,nomlib=@nomlib,editorial=@editorial,autor=@autor,esp=@esp WHERE
codigo=@codigo"

Dim modificar As New MySqlCommand(seleccionar, conexion_mysql)

modificar.Parameters.AddWithValue("?codigo", txtcodigo.Text)
modificar.Parameters.AddWithValue("?nomlib", txtnombrelibro.Text)
modificar.Parameters.AddWithValue("?editorial", cmbeditorial.Text)
modificar.Parameters.AddWithValue("?autor", txtautor.Text)
If (optbioquimica.Checked = True) Then
modificar.Parameters.AddWithValue("?esp", "Ingeniería Bioquímica")
End If

If (optgempresarial.Checked = True) Then


modificar.Parameters.AddWithValue("?esp", "Ingeniería en Gestión
Empresarial")
End If

If (optindustrial.Checked = True) Then


modificar.Parameters.AddWithValue("?esp", "Ingeniería Industrial")
End If

If (optinformatica.Checked = True) Then


modificar.Parameters.AddWithValue("?esp", "Ingeniería en
Informática")
End If
modificar.Connection = conexion_mysql
modificar.ExecuteNonQuery()

MsgBox("Registro modificado", MsgBoxStyle.Information, "Modificar...")


Call limpiar()

Else
MsgBox("error esxisten en epacios vacios ", MsgBoxStyle.Critical,
"Modificar...")
Call limpiar()

End If
End Sub
Código fuente de Guardar validando si existe el registro en la Base de Datos
Private Sub cmdAceptar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdAceptar.Click
Dim guardar As MySqlCommand
If ok() = True Then
Dim buscar As String
Dim consulta As MySqlDataReader

Try
buscar = "SELECT codigo,nomlib,editorial,autor,esp FROM libro WHERE
codigo=@codigo"
Dim leer_consulta As New MySqlCommand(buscar, conexion_mysql)

leer_consulta.Parameters.Add("@codigo", MySqlDbType.VarChar,
10).Value = txtcodigo.Text
consulta = leer_consulta.ExecuteReader

If (consulta.Read) Then
MsgBox("El Registro ya existe", vbInformation, "GUardar...")
consulta.Close()
Else
consulta.Close()
guardar = New MySqlCommand("INSERT INTO
libro(codigo,nomlib,editorial,autor,esp)
VALUES(?codigo,?nomlib,?editorial,?autor,?esp)")

guardar.Parameters.AddWithValue("?codigo", txtcodigo.Text)
guardar.Parameters.AddWithValue("?nomlib", txtnombrelibro.Text)
guardar.Parameters.AddWithValue("?editorial", cmbeditorial.Text)
guardar.Parameters.AddWithValue("?autor", txtautor.Text)

If (optbioquimica.Checked = True) Then


guardar.Parameters.AddWithValue("?esp", "Ingeniería
Bioquímica")
End If

If (optgempresarial.Checked = True) Then


guardar.Parameters.AddWithValue("?esp", "Ingeniería en
Gestión Empresarial")
End If
If (optindustrial.Checked = True) Then
guardar.Parameters.AddWithValue("?esp", "Ingeniería
Industrial")
End If
If (optinformatica.Checked = True) Then
guardar.Parameters.AddWithValue("?esp", "Licenciatura en
Informática")
End If

guardar.Connection = conexion_mysql
guardar.ExecuteNonQuery()

MsgBox("El registro ha sido almacenado correctamente",


MsgBoxStyle.Information, "Guardar...")
Call limpiar()
End If
Catch ex As Exception
MsgBox("Error de consulta" & ex.Message)
End Try
Else
MsgBox("Error existen en espacios vacios ", MsgBoxStyle.Critical,
"Guardar...")
Call limpiar()
End If

End Sub

Buscar registros pulsando ENTER

1. El código fuente del botón buscar se pasará dentro de un procedimiento (Sub


Buscar)
2. Una vez que se haya movido el código se manda a llamar el procedimiento de
Buscar registro (Call Buscar)
3. Se da doble click en la caja de texto donde se requiere esta acción y en las
propiedades de la caja ubicado en la parte superior derecha del área de
código fuentes se selecciona KeyPress.
4.

Private Sub txtcodigo_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtcodigo.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
Call buscar()
End If
End Sub

Codigo fuente de eliminar


Private Sub cmdEliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEliminar.Click
Dim borrar As String

If ok() Then
borrar = "DELETE FROM libro WHERE codigo=?codigo"
Dim eliminar As New MySqlCommand(borrar, conexion_mysql)
eliminar.Parameters.AddWithValue("?codigo", txtcodigo.Text)
eliminar.ExecuteNonQuery()
MsgBox("Codigo eliminado", vbInformation, "Eliminar....")
Call limpiar()
Else
MsgBox("Existen espacios vacios", vbCritical, "Eliminar...")
Call limpiar()
End If
End Sub
Para definir un conjunto de datos y una tabla de datos

1. En el menú Proyecto, seleccione Agregar nuevo elemento.


2. En el cuadro de diálogo Agregar nuevo elemento, haga clic en Conjunto de datos .
Escriba un nombre para el conjunto de datos y haga clic en Agregar. El nombre de
ConexionReporte.xsd.

Esto agrega un nuevo archivo XSD al proyecto y abre el Diseñador de DataSet.


3. En Cuadro de herramientas, en el Diseñador de DataSet, arrastre un control
TableAdapter hasta la superficie de diseño.
Esto inicia el Asistente para la configuración de TableAdapter.

4. En la página Elegir la conexión de datos, haga clic en Nueva conexión.


5. Si esta es la primera vez que crea un origen de datos en Visual Studio, verá la
página Elegir origen de datos. En el cuadro Origen de datos, seleccione MySQL
Database. Y haga click en continuar.

6. Aparecerá el cuadro de dialogo agregar conexión


Probar conexión

Elegir conexión de datos


Generador de consultas
Agregar tablas para hacer las consultas
Seleccionar los campos que se desee mostrar en el reporte o informe
Métodos que se van a generar
Click en finalizar y aparece lo siguiente en la pantalla
Para agregar un nuevo archivo de definición de informe de cliente (.rdlc)
utilizando el Asistente para informes.

1. En el menú Proyecto, seleccione Agregarnuevo elemento.


2. En el cuadro de diálogo Agregar nuevo elemento, elija Asistente para informes.
3. Escriba el nombre del reporte y active el botón agregar

1. En la página Propiedades del conjunto de datos, en la lista desplegable Origen de


datos, seleccione el DataSet que creó.

El cuadro Conjuntos de datos disponibles se actualiza automáticamente con el


DataTable que creó.

2. Haga clic en Siguiente.


3. En la página Organizar campos, haga lo siguiente:
1. Arrastre los campos si desea ordenarlos en filas o columnas.
Deshabilitar mostrar subtotales y totales generales
Elegir un estilo
De este modo, se crea el archivo .rdlc y, a continuación, se abre en el Diseñador de
informes. El Tablix que ha diseñado se muestra ahora en la superficie de diseño.
Para agregar un título al informe

1. Haga clic en el Tablix en la superficie


de diseño para que aparezcan los
controladores de columna y filas encima
y al lado de la tabla.
2. Haga clic en el controlador de tabla para seleccionar todo la tabla y que muestre la
flecha en cruz.

3. Desplace el tabla hacia abajo en la superficie de diseño arrastrando la flecha en cruz.


4. En el cuadro de herramientas, arrastre un elemento Cuadro de texto hasta el área
situada encima de la tablaen la superficie de diseño y colóquelo arrastrando la flecha en
cruz.
5. Con el cuadro de texto seleccionado, escriba Company Sales. Si fuera necesario,
arrastre el borde del cuadro de texto para expandirlo.
6. Con el cuadro de texto seleccionado, haga clic en el botón Negrita situado en la barra
de herramientas Formato del informe y, a continuación, seleccione 16pt en el cuadro
Tamaño de fuente.
7. Con el cuadro de texto seleccionado, haga clic en el botón Color de primer plano en la
barra de herramientas Formato del informe.
8. En el cuadro de diálogo Elegir color, seleccione Azul oscuro y haga clic en Aceptar.

Para agregar el control ReportViewer al formulario

1. Agregar un nuevo formulario llamado frmreporte.


2. En el menú Ver, elija Diseñador.

3. Desde la sección Informes del cuadro de herramientas, arrastre el control


ReportViewer hasta el formulario.
4. Abra el panel de etiquetas inteligentes del control ReportViewer1 haciendo clic en
el glifo de la etiqueta inteligente de la esquina superior derecha. Haga clic en la lista
desplegable Elegir informe y seleccione SimpleReport.Sales Orders.rdlc.
5. En el panel de etiquetas inteligentes, elija Acoplar en contenedor principal o
primario.

A lo largo del resto de esta visita guiada, podrá generar la aplicación y ver el
informe en el formulario en cualquier momento. Si desea comprobar cómo afecta
cada cambio en el diseño del informe al informe final, genere y visualice el informe
como último paso en cada uno de los procedimientos siguientes.

6. (Opcional) Presione F5 para compilar la aplicación y ver el informe en el formulario


Imports MySql.Data.MySqlClient
Public Class Formcliente

Private Property seleccionar As Boolean

Function Validar() As Boolean


If (Textrfc.Text <> "") Then
Validar = True
Else
Validar = False
End If
End Function

Sub vaciar()
Textrfc.Text = ""
Textnombre.Text = ""
Textedad.Text = ""
Textciudad.Text = ""
Textdireccion.Text = ""
Texttelefono.Text = ""
Textestado.Text = ""

Textrfc.Focus()

End Sub

----------------------------------------------------------------------------------------------------------------------------------

Dim Button1 As MySqlCommand

If Validar() = True Then


Dim buscar As String
Dim consulta As MySqlDataReader

Try
buscar = "SELECT nombre,direccion,telefono,ciudad,estado,RFC,edad
FROM clientes WHERE rfc=@rfc"
Dim leer_consulta As New MySqlCommand(buscar, conexion_mysql)

leer_consulta.Parameters.Add("@rfc", MySqlDbType.VarChar, 10).Value


= Textrfc.Text
consulta = leer_consulta.ExecuteReader

If (consulta.Read) Then
MsgBox("El Registro ya existe", vbInformation, "GUardar...")
consulta.Close()
Else
consulta.Close()

Button1 = New MySqlCommand("INSERT INTO clientes


(nombre,direccion,telefono,ciudad,estado,RFC,edad) VALUES
(?nombre,?direccion,?telefono,?ciudad,?estado,?RFC,?edad)")
Button1.Parameters.AddWithValue("?RFC", Textrfc.Text)
Button1.Parameters.AddWithValue("?nombre", Textnombre.Text)
Button1.Parameters.AddWithValue("?edad", Textedad.Text)
Button1.Parameters.AddWithValue("?direccion",
Textdireccion.Text)
Button1.Parameters.AddWithValue("?telefono", Texttelefono.Text)
Button1.Parameters.AddWithValue("?ciudad", Textciudad.Text)
Button1.Parameters.AddWithValue("?estado", Textestado.Text)

Button1.Connection = conexion_mysql
Button1.ExecuteNonQuery()

MsgBox("registro almacenado", MsgBoxStyle.Information, "Grabar")


Call vaciar()
End If
Catch ex As Exception

MsgBox("error, de consulta" & ex.Message)

End Try
Else
MsgBox("error, existen espacios vacios", MsgBoxStyle.Critical, "error")

Call vaciar()
End If
End Sub

You might also like