Sie sind auf Seite 1von 3

Imports System.

Data
Imports System.Data.SqlClient
Public Class Form1
Public conexion As SqlConnection = New SqlConnection("Initial
Catalog=ApiRestDB;" & "Data Source=DESKTOP-0V74UD1\SQLEXPRESS;Integrated
Security=SSPI;")
Private cmb As SqlCommandBuilder
Public ds As DataSet = New DataSet()
Public da As SqlDataAdapter
Public comando As SqlCommand

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


CargarDatosIniciales()
End Sub

Public Sub Conectar()


Try
conexion.Open()
Catch ex As Exception
MessageBox.Show("Error al conectar")
Finally
conexion.Close()

End Try
End Sub

Public Sub CargarDatosIniciales()


txtIdPersona.Text = ""
txtNombre.Text = ""
txtApellido.Text = ""
ConsultaGeneral()
End Sub

Public Sub ConsultaGeneral()


ds.Tables.Clear()
da = New SqlDataAdapter("execute SP_Persona
@Operacion='A',@IdPersona=0,@Nombre='',@Apellido=''", conexion)
cmb = New SqlCommandBuilder(da)
da.Fill(ds, "tabla")
DataGridView1.DataSource = ds.Tables("tabla")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles


Button1.Click
conexion.Open()
comando = New SqlCommand("execute SP_Persona
@Operacion,@IdPersona,@Nombre,@Apellido", conexion)
comando.Parameters.Add("@Operacion", SqlDbType.VarChar).Value = "I"
comando.Parameters.Add("@IdPersona", SqlDbType.Int).Value = 0
comando.Parameters.Add("@Nombre", SqlDbType.VarChar).Value = txtNombre.Text
comando.Parameters.Add("@Apellido", SqlDbType.VarChar).Value =
txtApellido.Text
comando.ExecuteNonQuery()
conexion.Close()
CargarDatosIniciales()

End Sub

Private Sub DataGridView1_CellClick(sender As Object, e As


DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Try
Dim grid As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
txtIdPersona.Text = grid.Cells(0).Value.ToString
txtNombre.Text = grid.Cells(1).Value.ToString
txtApellido.Text = grid.Cells(2).Value.ToString
Catch ex As Exception

End Try

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles


Button4.Click
conexion.Open()
comando = New SqlCommand("execute SP_Persona
@Operacion,@IdPersona,@Nombre,@Apellido", conexion)
comando.Parameters.Add("@Operacion", SqlDbType.VarChar).Value = "S"
comando.Parameters.Add("@IdPersona", SqlDbType.Int).Value =
txtIdPersona.Text
comando.Parameters.Add("@Nombre", SqlDbType.VarChar).Value = ""
comando.Parameters.Add("@Apellido", SqlDbType.VarChar).Value = ""
Dim reader As SqlDataReader = comando.ExecuteReader()
If reader.Read() Then
txtNombre.Text = reader(1)
txtApellido.Text = reader(2)
End If
conexion.Close()

End Sub
End Class

drop procedure SP_Persona;


CREATE PROCEDURE SP_Persona(
@Operacion varchar(2),
@IdPersona int,
@Nombre varchar(36),
@Apellido varchar(36)
)
As
BEGIN
BEGIN TRY
BEGIN TRANSACTION
IF @Operacion='I'
BEGIN
INSERT INTO persona(nombre,apellido)
VALUES(@Nombre,@Apellido)
END
IF @Operacion='U'
BEGIN
UPDATE persona
SET nombre=@Nombre,
apellido=@Apellido
WHERE idPersona=@IdPersona
END
IF @Operacion='D'
BEGIN
DELETE FROM persona
WHERE idPersona=@IdPersona
END
COMMIT TRANSACTION
IF @Operacion='A'
BEGIN
SELECT idPersona as ID,
nombre as Nombre,
apellido as Apellido
FROM persona
END
IF @Operacion='S'
BEGIN
SELECT idPersona,
nombre,
apellido
FROM persona
WHERE idPersona=@IdPersona
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
END CATCH
END

Das könnte Ihnen auch gefallen