none
Hola necesito su ayuda tengo un procedimiento almacenado que me auto genera un código en sql server como hacer para que me aparezca automáticamente en una caja de texto de visual basic RRS feed

  • Pregunta

  • tengo un procedimiento almacenado con un código auto generado en sql server como hacer para que en visual basic me apararezca automaticamente en un texbox el nuvo codigo?
    
    
    
    create procedure  PALUMNOS
    @NOMBRE VARCHAR (50),
    @APELLIDO VARCHAR (50),
    @CARRERA VARCHAR (50),
    @TURNO VARCHAR (10),
    @DIRECCION VARCHAR (100),
    @MUNICIPIO VARCHAR (50),
    @DEPARTAMENTO VARCHAR (50),
    @TELEFONO VARCHAR (15),
    @CEDULA VARCHAR (30),
    @EMERGENCIA_TELEFONO VARCHAR (50),
    @DOCUMENTACION_EXPEDIENTE VARCHAR (50)
    as
    declare @PALUMNOS as int,
    @NO_REGISTRO as char (10)
    select @PALUMNOS=COUNT(*) from ALUMNOS
    if @PALUMNOS is null set @PALUMNOS=0;
    set @PALUMNOS=@PALUMNOS+1;
    if @PALUMNOS<=9
    set @NO_REGISTRO='C000'+LTRIM(STR(@PALUMNOS))
    else
    if @PALUMNOS<=999
    set @NO_REGISTRO='C0'+LTRIM(STR(@PALUMNOS))
    else
    set @NO_REGISTRO='C'+LTRIM(STR(@PALUMNOS))
    insert into ALUMNOS values (@NO_REGISTRO,
    @NOMBRE,
    @APELLIDO,
    @CARRERA,
    @TURNO,
    @DIRECCION,
    @MUNICIPIO,
    @DEPARTAMENTO,
    @TELEFONO,
    @CEDULA,
    @EMERGENCIA_TELEFONO,
    @DOCUMENTACION_EXPEDIENTE)
    
    
    
    
    
    create procedure  PALUMNOS
    @NOMBRE VARCHAR (50),
    @APELLIDO VARCHAR (50),
    @CARRERA VARCHAR (50),
    @TURNO VARCHAR (10),
    @DIRECCION VARCHAR (100),
    @MUNICIPIO VARCHAR (50),
    @DEPARTAMENTO VARCHAR (50),
    @TELEFONO VARCHAR (15),
    @CEDULA VARCHAR (30),
    @EMERGENCIA_TELEFONO VARCHAR (50),
    @DOCUMENTACION_EXPEDIENTE VARCHAR (50)
    as
    declare @PALUMNOS as int,
    @NO_REGISTRO as char (10)
    select @PALUMNOS=COUNT(*) from ALUMNOS
    if @PALUMNOS is null set @PALUMNOS=0;
    set @PALUMNOS=@PALUMNOS+1;
    if @PALUMNOS<=9
    set @NO_REGISTRO='C000'+LTRIM(STR(@PALUMNOS))
    else
    if @PALUMNOS<=999
    set @NO_REGISTRO='C0'+LTRIM(STR(@PALUMNOS))
    else
    set @NO_REGISTRO='C'+LTRIM(STR(@PALUMNOS))
    insert into ALUMNOS values (@NO_REGISTRO,
    @NOMBRE,
    @APELLIDO,
    @CARRERA,
    @TURNO,
    @DIRECCION,
    @MUNICIPIO,
    @DEPARTAMENTO,
    @TELEFONO,
    @CEDULA,
    @EMERGENCIA_TELEFONO,
    @DOCUMENTACION_EXPEDIENTE)
    
    
    /* COMO HACER PARA EL @No_REGISTRO me aparezca automáticamente en una caja de texto en visual basic


    domingo, 18 de agosto de 2019 0:37

Todas las respuestas

  • COMO HACER PARA EL @No_REGISTRO me aparezca automáticamente en una caja de texto en visual basic

    Fíjate que @No_REGISTRO es una variable local interna del procedimiento almacenado, por lo que nunca se devuelve fuera del mismo y en consecuencia es invisible para el programa llamante en visual basic. Por lo tanto, si quieres mostrar ese valor, lo primero que necesitas hacer es modificar el procedimiento almacenado para que ese valor se devuelva.

    Básicamente hay tres formas de devolverlo. Tendrás que optar por una de las tres.

    1. Declarar la variable como parámetro de salida ("OUTPUT"). Esto se hace poniéndola en la misma lista de parámetros donde tienes los demás pero añadiendo OUTPUT al final, y se quita el "Declare" donde la tienes ahora mismo. Desde VB, en la lista de parámetros que ahora mismo estarás usando, añades el nuevo y le pones ParameterDirection.Output, y tomas su .Value después de llamar al SP pero antes de cerrar el SqlConnection.
    2. Usar "RETURN @NoRegistro" al final del SP. En ese caso lo lees desde VB con un parámetro que tenga ParameterDirection.ReturnValue.
    3. Devolverlo con "Select @No_Registro". En ese caso, lo lees desde VB llamando al SP con ExecuteScalar en lugar de ExecuteNonQuery.

    domingo, 18 de agosto de 2019 7:06
    Moderador
  • hola

    porque mencionas "visual basic" pero planteas la pregunta en el foro de c# ?

    el concepto de "apararecer automaticamente" no existe, vas a tener que programarlo, no se que es lo que genera ese procedure, pero no generas un parametro del tipo output para el @NO_REGISTRO

    How to use SQL Output Parameters in Stored Procedures

    How to return Output parameter from Stored Procedure in ASP.Net using C# and VB.Net

    valida como usa

    @FruitName VARCHAR(30) OUTPUT

    en el procedure, define el parametro desde codigo

    cmd.Parameters.Add("@FruitName", SqlDbType.VarChar, 30);
    cmd.Parameters["@FruitName"].Direction = ParameterDirection.Output;

    y toma el valor

    cmd.Parameters["@FruitName"].Value.ToString()

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de agosto de 2019 23:08