Nombre: Oscar Marcelo Yujra Borda C.I.: 6768180 L.P.
Procedimientos Almacenados de MySQL en Visual Basic
1.- Creamos la BD académico e insertamos datos:
create table estudiante(
cod_estudiante varchar(10) not null,
nombres varchar(20) not null,
paterno varchar(20) not null,
materno varchar(20) not null,
ci int,
fecha_nac date,
domicilio varchar(50),
primary key (cod_estudiante));
create table cuenta(
login varchar(9) not null,
pasword varchar(15),
cod_estudiante varchar(10),
primary key (login),
foreign key (cod_estudiante) references estudiante);
2.- Luego creamos nuestro procedimiento el cual genera el login y password de su cuenta, el login se
forma con sus inciales y fecha de nacimiento y el password es el ci.
create procedure genera_codigo(nom varchar(20), pat varchar(20), mat varchar(20), fe
date, cod varchar(10), car int)
begin
declare codigo varchar(9);
set codigo=concat(left(pat,1),left(mat,1),left(nom,1),extract(day from
fe),extract(month from fe),right(cast(extract(year from fe) as char),2));
insert into cuenta set login=codigo, pasword=car, cod_estudiante=cod;
end;
3.- Creamos la aplicación en Visual Basic
El botón genera login será el que ejecute nuestro procedimiento almacenado.
Imports System.Data
Imports MySql.Data.MySqlClient
'EJECUTA COMANDOS EN MySQL
Module Module1
Dim ConStr As String = "server=localhost;uid=root ;database=academico"
Dim Con As New MySqlConnection(ConStr)
Public Function MiFuncion(ByVal Sql As String) As String
Dim Comando As New MySqlCommand(Sql, Con)
Try
If Not Con Is Nothing Then Con.Close()
Con.Open()
Dim res As Integer = Comando.ExecuteNonQuery()
Return res.ToString
Catch ex As Exception
Return ex.Message
Finally
Con.Close()
Comando = Nothing
End Try
End Function
End Module
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
End Sub
' MOSTRAR LOS DATOS
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim ConStr As String = "server=localhost;uid=root ;database=academico"
Dim table As DataTable
Dim adaptador As MySqlDataAdapter
Dim builder As MySqlCommandBuilder
table = New DataTable
adaptador = New MySqlDataAdapter("select e.cod_estudiante as CODIGO, e.nombres
as NOMBRES, e.paterno as PATERNO, e.materno as MATERNO,e.ci as CI, e.fecha_nac as
NACIMIENTO, c.login as LOGIN from estudiante e, cuenta c where
e.cod_estudiante=c.cod_estudiante", ConStr)
builder = New MySqlCommandBuilder(adaptador)
adaptador.Fill(table)
DataGridView1.DataSource = table
End Sub
'GUARDAR DATOS
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim ConStr As String = "server=localhost;uid=root ;database=academico"
Dim Con As New MySqlConnection(ConStr)
Dim sql As String = "insert into estudiante values ('" & TextBox1.Text & "','"
& TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text
& "','" & TextBox6.Text & "','" & TextBox7.Text & "') "
ConStr = MiFuncion(sql)
MsgBox("Datos Guardados Correctamente")
DataGridView1.Refresh()
End Sub
'LIMPIAR TEXTBOX
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
End Sub
'CERRAR LA APLICACION
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button5.Click
Close()
End Sub
' GENERAR LOGIN
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'Conectamos la Bd.
Dim ConStr As String = "server=localhost;uid=root ;database=academico"
Dim Con As New MySqlConnection(ConStr)
'llamamos al procedimiento enviandole los parametros que necesita.
Dim sql As String = "call genera_codigo('" & TextBox2.Text & "','" &
TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox6.Text & "','" & TextBox1.Text &
"','" & TextBox5.Text & "')"
ConStr = MiFuncion(sql)
End Sub
End Class
Ahora registramos un nuevo estudiante, generamos su codigo y luego hacemos click en mostrar.