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 MiFuncion( ByVal Sql As String 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.