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.