Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2012, 06:52
eljuank1982
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años, 1 mes
Puntos: 4
capturar valor devuelto por parámetro de salida

Hola tengo un procedimiento sql que verifica si existe un valor y si existe no actualiza sino actualiza pero este entrega un valor de salida. Quiero desde mi aplicación .net detectar al valor entregado y mostrar en un label el mensaje si existe el valor que se trata de actualizar.

aquí está el SP:

Código:
PROCEDURE [dbo].[Actualiza_Estad_NOrganismos] 
	-- Add the parameters for the stored procedure here
    @Org_IdODS INT ,
    @ONE_Id VARCHAR(5) ,
    @ONE_Activo BIT ,
    @existe VARCHAR(1) = NULL OUTPUT
AS 
    BEGIN
SET NOCOUNT ON;
 IF EXISTS ( SELECT  *
                    FROM    [DM_Estadistica].[dbo].[Estad_NOrganismo]
                    WHERE   one_id = @ONE_Id)--  AND @ONE_Id IS NOT null
            SET @existe = '1' 
        ELSE 
            BEGIN
                UPDATE  Estad_NOrganismo
                SET     ONE_Id = @ONE_Id ,
                        ONE_Activo = @ONE_Activo ,
                        FechaModificacion = GETDATE()
                WHERE   Org_IdODS = @Org_IdODS
                SET @existe = '0'  
            END
    END
Aquí el aspnet del datasource

Código:
<asp:SqlDataSource ID="SqlNOrganismos" runat="server" ConnectionString="<%$ ConnectionStrings:DM_EstadisticaConnectionString %>"
            SelectCommand="Dame_Estad_NOrganismos" SelectCommandType="StoredProcedure" UpdateCommand="Actualiza_Estad_NOrganismos"
            UpdateCommandType="StoredProcedure" OnUpdated="On_Updated">
            <SelectParameters>
                <asp:ControlParameter ControlID="RadComboBox2" Name="Filtro" PropertyName="SelectedValue"
                    DefaultValue="Todos" Type="String" />
            </SelectParameters>
            <UpdateParameters>
                <asp:ControlParameter ControlID="RadGrid1" Name="Org_IdODS" PropertyName="SelectedValue"
                    Type="Int32" />
                <asp:Parameter Name="ONE_Id" Type="String" />
                <asp:Parameter Name="ONE_Activo" Type="Boolean" />
                <asp:Parameter Name="existe" Type="String" Direction="InputOutput" DefaultValue="j"/>
            </UpdateParameters>
        </asp:SqlDataSource>
Aquí el C#

Código:
public void On_Updated(Object sender, SqlDataSourceStatusEventArgs e)
        {
            DbCommand command = e.Command;

           
            string insertado = "false";

            insertado = command.Parameters["@existe"].Value.ToString();

            Label1.Text = insertado;

            RadGrid1.DataBind();
        }
Básicamente esto es una prueba para ver si el label toma valor pero nada, creo que estoy en el evnto equivocado o algo tengo mal pero no doy con lo que es.

Salu2 y gracias de antemano.

Última edición por eljuank1982; 19/07/2012 a las 06:59