Realizar altas, bajas y modificaciones con Visual Basic .NET y SQL SERVER 2005

Atendiendo a todos los usuarios de Visual Basic, vamos a realizar el uso de Procedmientos Almacenados en SQL Server 2005y Visual Basic. El primer paso , es diseñar nuestro formulario.

Hay que considerar que este ejemplo es similar al que hice con Visual C#. Los elementos a utilizar son:

SQLConnection

SQL Command

Stored Procedured SQL SERVER 2005

Si ya tenemos el formulario, ahora hay que agregarle el código. Empezaremos por agregarle en el encabezado antes de Public Class Form1 esto:

Imports System.Data.SqlClient

Este es mi formulario de ejemplo, es una pantalla para dar de alta a los clientes, en ella solo voy a estar afectando a los campos clave, nombre, direccion y negocio. Hay que agregrar una nueva conexion a una base de datos declaramos esto agregandole la cadena de conexión.

Dim cnn As SqlConnection
Dim cmd As SqlCommand
Dim dr As DataRow
Dim conexion As String = “Data Source=.;Initial Catalog=dbDemo;Integrated Security=true”

Coloreo la linea de la conexion porque es importante recordar lo siguiente:

Data Source: Se debe indicar el nombre del servidor, si se tiene SQLSERVER Express, sera necesario darselo, si se cuenta con una versión superior, podemos utilizar unicamente el . (punto)

Initial Catalog: Debemos colocar el nombre de la base de datos a utilizar.

Botón Altas.

Primero hay que crear el procedimiento almacenado, en la venta de Server Explorer , hay que escoger la Base de Datos, y de ahi la carpeta de Stored Procedure, damos un clic con el boton derecho y escogemos Add New Stored Procedure

Aqui vamos a crear los procedimientos almacenados (stored procedure).

Esto hará que muestre una pantalla para editar el respectivo código en SQL, los siguientes procedimientos están compuestos de dos partes, la primera donde se declaran los parametros a utilziar, y en la segunda donde se realiza la transacción SQL.

El procedimiento de Insertar un registro queda de esta forma, recuerda que el nombre que le des al Store Proceudure será como se almacenará y se llamará desde tu programa en VS.

Stored Procedure Altas

ALTER PROCEDURE dbo.spAltaCliente

@prmId int,
@prmNombre nvarchar(50),
@prmDireccion nvarchar(50),
@prmNegocio nvarchar(50)

AS

INSERT INTO CLIENTES (ID,NOMBRE,DIRECCION,NEGOCIO)
VALUES (@prmId,@prmNombre,@prmDireccion,@prmNegocio)

RETURN

Código del Botón Altas

cnn = New SqlConnection(conexion)
cnn.Open();
cmd=New SqlCommand(“spAltaCliente”,cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(“@prmClave”, SqlDbType.Int).Value = Convert.ToInt16(TextBox1.Text)
cmd.Parameters.Add(“@prmNombre”, SqlDbType.NVarChar).Value = TextBox2.Text
cmd.Parameters.Add(“@prmDireccion”, SqlDbType.NVarChar).Value = TextBox3.Text
cmd.Parameters.Add(“@prmNegocio”, SqlDbType.NVarChar).Value = TextBox4.Text
cmd.ExecuteNonQuery()
MessageBox.Show(“Cliente Activado”)
TextBox1.Text = “”
TextBox2.Text = “”
TextBox3.Text = “”
TextBox4.Text = “”

Stored Procedure Eliminar

CREATE PROCEDURE dbo.spEliminaCliente

@prmId int
AS
DELETE FROM CLIENTES WHERE ID=@prmId

RETURN

Código del Butón Eliminar

cnn = New SqlConnection(conexion)
cnn.Open()
cmd = New SqlCommand(“spEliminaCliente”, cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(“@prmClave”, SqlDbType.Int).Value = Convert.ToInt16(TextBox1.Text)
cmd.ExecuteNonQuery()
MessageBox.Show(“Cliente ELIMINADO”)
TextBox1.Text = “”
TextBox2.Text = “”

Stored Procedure Modificar

CREATE PROCEDURE dbo.spModificaCliente

@prmId int,
@prmNombre nvarchar(40)
AS
UPDATE clientes SET nombre=@prmNombre WHERE Id=@prmId
RETURN

Código del Botón Modificar

cnn = New SqlConnection(conexion)
cnn.Open()
cmd = new SqlCommand(“spModificaCliente”, cnn)
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@prmId”, SqlDbType.Int).Value = Convert.ToInt16(TextBox1.Text)
cmd.Parameters.Add(“@prmNombre”, SqlDbType.NVarChar).Value = TextBox2.Text
cmd.ExecuteNonQuery()
MessageBox.Show(“Cliente Modificado”)
textBox1.Text = “”
textBox2.Text = “”

Y les anexo el botón de consulta mas tarde.

Saludos!!!

62 thoughts on “Realizar altas, bajas y modificaciones con Visual Basic .NET y SQL SERVER 2005

  1. hola estoy tratando de hacer el ejemplo pero no m sale, quisiera ver la posibilidad k m lo mandaras ya hecho, estoy iniciando como programadora en net.muchas gracias

  2. Hola fer, con respecto a adjuntar la Base de Datos, en este mismo blog explico como crearla, checate el post, si tienes problemas con como hacerlo te recomiendo que leas sobre SQL Server Express, aunque mi ejemplo es muy sencillo.

  3. Hola EGLZ, fijate que si lo que pides es el codigo de las consultas, lo que vez ahi esta hecho con procedimientos almacenados, en unos post mas abajo explico bien como crearlos y de que manera funcionan, por eso no pongo codigo de consultas.

  4. hola no le entiendo ni papas,a esto!:(
    y solo estoy aki por ke mi hermano me dijo ke le ayudara hacer su tarea,ojala ke est bien todo esto,para ke le salga perfecto a mi hermano

    GRACIAS!!

  5. Muchas gracias por el articulo me sirvio bastante para aclarar unas cuantas dudas que tenía. Por favor seguí publicando este tipo de articulos de vb.net vs sql server. Saludos

  6. Hola profe, la verdad desde la primera vez que nos dio su blog lo he estado consultando no solo para ejercicios con respecto a su materia sino a otras materias y la verdad me ha servido de mucho.
    gracias por publicar ejemplos faciles y de gran ayuda para los que apenas empezamos a dar nuestros pininos en Sql Server Express y Visual

  7. gracias profesor, me habia vuelto loco buscando y analisando como llamar un procedimiento almacenado, le agradesco que halla personas como usted que toman un poco de su tiempo para poder ayudar a al comunidad de personas que vamos iniciando con visual y sql server. gracias saludos.

  8. esta chingon estoy empesando a programar con procedures y esto tenlo por seguro que me va a cer de mucha ayuda,
    Otra cosilla alguien me podria decir como actualizar una BD despues de aver echo modificaciones en un datagrid se les agradeceria mucho
    GRACIAS

  9. miren todo lo que encontre esta bien chido pero les kiero pedir un favor lo que pasa que necesito codigo para realizar un programa en visual basic para un hotel

  10. oiie me pasa un problema muy grande.. a la hora de guardar el stored procedure (cualquiera) me marca un error
    el cual dice El nombre de objeto ‘dbo.AgregarUsuario’ no es valido

    por cierto esta muy bien explicado es lo que necesitaba solo que me pasa ese detallito

    a ver si me podrias ayudar!
    ;)

  11. buenoz diaz dizkulpa kiziera zaber zi me podrian ayudar kon un programa k me enkargaron en la ezkuela i la vdd ezk ezta muy dificl para mi ia k io voi a empezando kon ezto a programar en vizual bazic.net ze trata de hacer un inventario zi me pueden aiudar porfavor?

  12. Saludos,
    Muy buena publicacion, he podido realizar altas, bajas, modificaciones y consultas, usando el Access; como saben para esto solamente hay que hacer pequeños ajustes (cambiar Sql por Oledb), por ejemplo: Imports System.Data.oleDB

    cmd=New OLEDBCommand…

    Gracias.

  13. Hola!! Estoy comenzando a hacer un sistema de control de citas, bueno y la vdd no se ni como empezar, tengo que dar altas, bajas, consulta, reportes y no tengoidea de como hacerlo. El programa que voy a utilizar para hacer el sistema es visual basic studio 2008, espero y me pueda ayudar.. me será de gran ayuda el codigo que publico, espero captar para poder aplicar esos conocimientos, gracias y de antemano espero y me ayude jejejejejej bye

  14. a mi me encargaron un programa en sql server 2000 y visual basic 6.o oyes no se si me podrias ayudar explicandome como hacerle la verdad no tengo idea de como hacerlo te lo agradecesria muchoo

  15. Hola!!

    Necesitaba este codigo para una tarea urgente y que me daba una de mis ultimas calificaciones de semestre…
    Genial Aportacion…

    Muchas Gracias!!!

  16. hola pero antes de eso nose ocupa hacer una base de datos en my sql o asi directo nomas

    gracias

    esta bien explicado

    o tra duda esto tambien aplica en visual basic pero con visual estudio

    gracias

  17. hola estimado.. muy buena tu explicacion, pero quiciera que me ayudes un yn problema que tengo es el siguiente tengo un formulario que realiza al abm y cuando click
    en el boton de busqueda aparece otro fomulario que tiene el datagridview en el momento de dar dobleclik no puedo hacer que estos datos seleccionados pasen al otro formulario del cual fue llamado este formulario de busqueda te agraeceria mucho con esto gracias y que dios te bendiga

  18. Me gustaria conocer el código de consulta… por favor.
    No sé como mandar llamar varios campos de 3 tablas y se muestren en un label o text de visual .. intente hacer algo como esto pero no sirvio:

    CREATE PROCEDURE consulta
    @nombrecomp varchar(100)
    AS
    SET NOCOUNT ON
    SELECT registro.nombrecomp, registro.email, registro.cumple, telefono.telcasa, telefono.telofic, telefono.ext,
    direccion.calle, direccion.numext, direccion.numint, direccion.colonia, direccion.municipio, direccion.estado,
    direccion.cp
    FROM registro LEFT JOIN telefono
    ON registro.nombrecomp = telefono.nombrecomp
    LEFT JOIN direccion
    ON direccion.nombrecomp=registro.nombrecomp
    WHERE
    registro.nombrecomp=@nombrecomp
    RETURN

    se supone que te regresa info de 3 tablas pero creoque no esta bien.

  19. Hasta el momento tuve que generar sp por cada campo:

    CREATE PROCEDURE consultanombre
    @nombrecomp varchar(100)
    AS
    SET NOCOUNT ON
    SELECT nombrecomp from registro
    where
    nombrecomp = @nombrecomp
    RETURN

    CREATE PROCEDURE consultaemail
    @nombrecomp varchar(100)
    AS
    SET NOCOUNT ON
    SELECT email from registro
    where
    nombrecomp = @nombrecomp
    RETURN

    CREATE PROCEDURE consultacumple
    @nombrecomp varchar(100)
    AS
    SET NOCOUNT ON
    SELECT cumple from registro
    where
    nombrecomp = @nombrecomp
    RETURN

    CREATE PROCEDURE consultatelcasa
    @nombrecomp varchar(100)
    @telcasa NUMERIC (8)
    AS
    SET NOCOUNT ON
    SELECT telcasa from telefono
    where
    nombrecomp = @nombrecomp
    RETURN

    Dim conexion As String = “Data Source=.\SQLEXPRESS;Initial Catalog=C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\dirtelefonico.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”

    cnn = New SqlConnection(conexion)
    cmd = New SqlCommand(“consultanombre”, cnn)
    cmd.CommandType = CommandType.StoredProcedure
    prm = New SqlParameter(“@nombrecomp”, SqlDbType.VarChar, 100) ‘aqui se pone el tipo de variable de la variable nombrecomp
    prm.Direction = ParameterDirection.Input
    cmd.Parameters.Add(prm)
    cmd.Parameters(“@nombrecomp”).Value = TextBox1.Text
    cnn.Open()
    Dim dr As SqlDataReader = cmd.ExecuteReader
    While dr.Read
    TextBox14.Text = dr.GetSqlString(0)
    End While
    dr.Close()
    cnn.Close()

    cnn = New SqlConnection(conexion)
    cmd = New SqlCommand(“consultaemail”, cnn)
    cmd.CommandType = CommandType.StoredProcedure
    prm = New SqlParameter(“@nombrecomp”, SqlDbType.VarChar, 100) ‘aqui se pone el tipo de variable de la variable nombrecomp
    prm.Direction = ParameterDirection.Input
    cmd.Parameters.Add(prm)
    cmd.Parameters(“@nombrecomp”).Value = TextBox1.Text
    cnn.Open()
    Dim dr2 As SqlDataReader = cmd.ExecuteReader
    While dr2.Read
    TextBox2.Text = dr2.GetSqlString(0)
    End While
    dr.Close()
    cnn.Close()

    cnn = New SqlConnection(conexion)
    cmd = New SqlCommand(“consultacumple”, cnn)
    cmd.CommandType = CommandType.StoredProcedure
    prm = New SqlParameter(“@nombrecomp”, SqlDbType.VarChar, 100) ‘aqui se pone el tipo de variable de la variable nombrecomp
    prm.Direction = ParameterDirection.Input
    cmd.Parameters.Add(prm)
    cmd.Parameters(“@nombrecomp”).Value = TextBox1.Text
    cnn.Open()
    Dim dr3 As SqlDataReader = cmd.ExecuteReader
    While dr3.Read
    TextBox3.Text = dr3.GetSqlDateTime(0)
    End While
    dr.Close()
    cnn.Close()

    cnn = New SqlConnection(conexion)
    cmd = New SqlCommand(“consultatelcasa”, cnn)
    cmd.CommandType = CommandType.StoredProcedure
    prm = New SqlParameter(“@nombrecomp”, SqlDbType.VarChar, 100) ‘aqui se pone el tipo de variable de la variable nombrecomp
    prm.Direction = ParameterDirection.Input
    cmd.Parameters.Add(prm)
    cmd.Parameters(“@nombrecomp”).Value = TextBox1.Text
    cnn.Open()
    Dim dr4 As SqlDataReader = cmd.ExecuteReader
    While dr4.Read
    TextBox4.Text = dr4.GetSqlDecimal(0)
    End While
    dr.Close()
    cnn.Close()

  20. Oye porfavor ayudame
    mira al momento de ejecutarlo me manda a un error del procedimiento almacenado que es el codigo de sql donde aparece insert into clientes, pues clientes no me lo reconoce:S

  21. oie publica el boton de consulta porfavor es muy inbteresante tu tema ya me salio aunque si el odigo tiene algunos errores minimos ocmo una coma de mas pero todo funciona ala perfeccion y porfavor publica el codigo de consulta hermano me urgeeeeeeeeeeeeeeeeeee

  22. Tengo un problemita con el ater procedure, no me acepta el nombre de spAltaCliente cuando guardo los cambios del programa… a que se debe?

  23. muy muy bien explicado me ayudaste bastante y pues la verdad solo me falta el boton de la consulta no sera mucha molestia q lo pusieras me sacaria de un gran apuro y pues queria preguntarte si no sabes como verificar si un registro po ejemplo la ID ya existe ante de aguardar gracias Saludos

  24. Me parece excelente tu ejemplo, pero fijate que me estoy adentrando en visual .net y no me funciono, seria mucha molestia si me pudieras enviar la aplicacion tuya que funciona y checar que me esta fallando .
    gracias de antemano

  25. HEY BODY SIGO ESPERANDO EL DE CONSULTAR…
    SI ME PODRIAS ECHAR UNA MANO, TENGO ESTA DUDA QUIERO BUSCAR UN DATO Y AL ENCONTRARLO EN LA BD MOSTRALO EN LAS RESPECTIVAS CAJAS DE TEXTO…

    VB 6.0 SI LO PUDE HACER PERO AQUI NO CNSIGO HACERLO SI ME PUEDES AYUDAR TE LO AGRADECERIA

  26. me gustaria que me dieran algunas paginas donde pueda encontrar definiciones de alta, baja, modificacion y cosulta en procedimiento almacenado en vb.net 2005

  27. Que tal buen dia, respecto al ejemplos me marca un error en ” Throw New NotImplementedException” ya le busque por todos lados y no lo puedo corregir me podrias decir en donde esta el errror

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s