none
GridView con Stored Procedure RRS feed

  • Pregunta

  • Que tal señores, la vdd llevo trabajando con este GridView un rato y solicito su ayuda para poder concluir, he intentado con todo, la cuestión es que uso la función edit para actualizar mi Gv desde codebehind sin ningún control, la situación es que cuando ejecuto dicha actualización me manda el mensaje de confirmación que se encuentra en el SP pero no me actualiza el campo que modifique, alguien puede orientarme al respecto, el SP desde SQL Server jala bien, les dejo el codigo

    ASPX

                                                                                                                                                                    

    <div align=center>
              <h4><asp:Label ID="LabelHeader" runat="server" Text="Label"></asp:Label></h4>
            <div style="OVERFLOW: auto; WIDTH: auto; HEIGHT: 305px" align="center">  

        <asp:GridView ID="GvParam" runat="server" AutoGenerateColumns="False" 
                       AllowSorting="True">
            <Columns>
                <asp:TemplateField HeaderText="Param" Visible="False">
                    <EditItemTemplate>
                        <asp:Label ID="LabelpaParam" runat="server" Text='<%# Eval("paParam") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label12" runat="server" Text='<%# Bind("paParam") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Código">
                    <EditItemTemplate>
                        <asp:Label ID="LabelpaCodigo" runat="server" Text='<%# Eval("paCodigo") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("paCodigo") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Descri">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaDescri" runat="server" Text='<%# Bind("paDescri") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("paDescri") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Alias">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAlias" runat="server" Text='<%# Bind("paAlias") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("paAlias") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxStr1">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxStr1" runat="server" Text='<%# Bind("paAuxStr1") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("paAuxStr1") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxStr2">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxStr2" runat="server" Text='<%# Bind("paAuxStr2") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("paAuxStr2") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxStr3">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxStr3" runat="server" Text='<%# Bind("paAuxStr3") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label6" runat="server" Text='<%# Bind("paAuxStr3") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxVal1">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxVal1" runat="server" Text='<%# Bind("paAuxVal1") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label7" runat="server" Text='<%# Bind("paAuxVal1") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxVal2">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxVal2" runat="server" Text='<%# Bind("paAuxVal2") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label8" runat="server" Text='<%# Bind("paAuxVal2") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="AuxVal3">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBoxpaAuxVal3" runat="server" Text='<%# Bind("paAuxVal3") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label9" runat="server" Text='<%# Bind("paAuxVal3") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Activo">
                    <EditItemTemplate>
                        <asp:CheckBox ID="CheckBoxpaActivo" runat="server" Checked='<%# Bind("paActivo") %>' />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("paActivo") %>' 
                            Enabled="false" />
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="UserMod">
                    <EditItemTemplate>
                        <asp:Label ID="TextBoxcnUserMod" runat="server" Text='<%# Eval("cnUserMod") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label10" runat="server" Text='<%# Bind("cnUserMod") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="FecMod">
                    <EditItemTemplate>
                        <asp:Label ID="TextBoxcnFecMod" runat="server" Text='<%# Eval("cnFecMod") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label11" runat="server" Text='<%# Bind("cnFecMod") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:CommandField CancelText="Cancelar" EditText="Editar" ShowEditButton="True" 
                    UpdateText="Actualizar" />
            </Columns>
            <EditRowStyle BackColor="#027A4A" ForeColor="White"  />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        </asp:GridView>
        </div> 
        </div> 

    _______________________________________________________________________-

    CODEBEHIND 

    Imports General
    Imports System.Data
    Imports System.Drawing

    Public Class wbCatagood

        Inherits System.Web.UI.Page
        Dim sUser As String
        Dim sTipPar As String
        Dim sOpcMen As String
        Dim sTitOpcMen As String
        Dim mensaje As String = ""
        Dim resultado As Integer

        Protected wsCatalogos As New WsCatalogos.WsCatalogos
        Dim RowDg As New WsCatalogos.WsCatalogos


        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    #If DEBUG Then
            Session("Usuario") = "SROSALESP"
            sTipPar = "CNU"
            sOpcMen = "CAT" + sTipPar
            sTitOpcMen = sOpcMen
    #End If

            Cargatablaet()
            CargatablaParam()
            LabelHeader.Text = sTitOpcMen


        End Sub

        Private Sub BindData()
            GvParam.DataSource = Session("TaskTable")
            GvParam.DataBind()
        End Sub

    Protected Sub CargatablaParam()

            Dim ds As DataSet = wsCatalogos.CatalogosObtenDatos(4, Session("Usuario"), sOpcMen, sTipPar, "all", "", "", "", "", "", 0, 2, 1, True, resultado, mensaje)


            Dim ordersTable As DataTable = ds.Tables(0)
            'Persist the table in the Session object.
            Session("TaskTable") = ordersTable
            BindData()

            GvParam.DataSource = ds
            GvParam.DataBind()


        End Sub

     Private Sub GvParam_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvParam.RowEditing
            'Set the edit index.
            GvParam.EditIndex = e.NewEditIndex

            'Bind data to the GridView control.
            BindData()

            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaDescri"), TextBox).Attributes.Add("style", "width:155px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAlias"), TextBox).Attributes.Add("style", "width:100px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxStr1"), TextBox).Attributes.Add("style", "width:100px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxStr2"), TextBox).Attributes.Add("style", "width:100px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxStr3"), TextBox).Attributes.Add("style", "width:100px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxVal1"), TextBox).Attributes.Add("style", "width:55px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxVal2"), TextBox).Attributes.Add("style", "width:55px;")
            DirectCast(GvParam.Rows(e.NewEditIndex).FindControl("TextBoxpaAuxVal3"), TextBox).Attributes.Add("style", "width:55px;")



        End Sub

        Private Sub GvParam_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvParam.RowCancelingEdit

            'Reset the edit index.
            GvParam.EditIndex = -1
            'Bind data to the GridView control.
            BindData()

        End Sub

        Private Sub GvParam_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvParam.RowUpdating

            'Dim txtbox_Param As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("LabelpaParam"), Label).Text
            Dim txtbox_Codigo As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("LabelpaCodigo"), Label).Text
            Dim txtbox_Descri As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaDescri"), TextBox).Text
            Dim txtbox_Alias As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAlias"), TextBox).Text
            Dim txtbox_AuxStr1 As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxStr1"), TextBox).Text
            Dim txtbox_AuxStr2 As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxStr2"), TextBox).Text
            Dim txtbox_AuxStr3 As String = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxStr3"), TextBox).Text
            Dim txtbox_AuxVal1 As Integer = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxVal1"), TextBox).Text
            Dim txtbox_AuxVal2 As Integer = DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxVal2"), TextBox).Text
            Dim txtbox_AuxVal3 As Integer = Convert.ToInt32(DirectCast(GvParam.Rows(e.RowIndex).FindControl("TextBoxpaAuxVal3"), TextBox).Text)
            'MsgBox(txtbox_AuxVal3)

            Dim resp As Boolean = wsCatalogos.CatalogosIsnUpd(3, Session("Usuario"), sOpcMen, sTipPar, txtbox_Codigo, txtbox_Descri, txtbox_Alias, txtbox_AuxStr1,
            txtbox_AuxStr2, txtbox_AuxStr3, 0, 0, 0, 1, resultado, mensaje)



            If resp Then
                FuncionesGenerales.CleanControls(Me.Controls)
                GvParam.EditIndex = -1


                'lblMensajes.Text = FuncionesGenerales.ObtenTextoMostrarVentana(mensaje)
                'btnModificar.Visible = False
                'btnAgregar.Visible = True

                CargatablaParam()


            Else


            End If

        End Sub

        Private Sub GvParam_RowUpdated(sender As Object, e As System.Web.UI.WebControls.GridViewUpdatedEventArgs) Handles GvParam.RowUpdated

            'Bind data to the GridView control.
            DataBind()

        End Sub


        Protected Sub GvParam_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GvParam.SelectedIndexChanged


        End Sub
    End Class


    ____________________________________

    STORED PROCEDURE

    ELSE if @accion =3--update

    BEGIN

        Begin Transaction

           -- VERIFICAR QUE EL paParam DEL CATÁLOGO SEA UNICO

           IF  not EXISTS (select * from ebParam 

                                      where paCodigo =@paCodigo )

           BEGIN

              SET @s_mensaje =  'El código : ' + @paCodigo  + ' no existe, favor de verificar'

              --RAISERROR (-50300, 16, 1) --Paramemtro no existente

              SET @i_resultado = -50300        

           END

           -- VERIFICAR QUE EL paParam sea valido

           ELSE IF  not EXISTS (select * from ebParam (nolock) 

                                      where paCodigo = 'TPR' + @paParam) OR @paParam <> substring(@paCodigo,1,3)

           BEGIN

              SET @s_mensaje = 'Tipo de parametro invalido'

              --RAISERROR (-50300, 16, 1) --Alias ya existe

              SET @i_resultado = -50500

           END

           -- VERIFICAR QUE EL ALIAS DEL CATALOGO SEA UNICO

           ELSE IF  EXISTS (select * from ebParam 

                                where paAlias = @paAlias

                                      and paCodigo <> @paCodigo

                                      and paParam = @paParam)

           BEGIN

              SET @s_mensaje = 'El alias: ' + @paAlias  + ' ya existe, favor de verificar'

              --RAISERROR (-50300, 16, 1) --Alias ya existe

              SET @i_resultado = -50300        

           END

           if @i_resultado = 0 begin

                               update  ebParam

                               set          paDescri=@paDescri,paAlias=@paAlias,

                                       paAuxStr1=@paAuxStr1,paAuxStr2=@paAuxStr2,

                                            paAuxVal1=@paAuxVal1,paAuxVal2=@paAuxVal2,

                                            paActivo=@paActivo,

                                            cnUserMod=@usExec,cnFecMod=Getdate()

                               where paParam=@paParam and paCodigo=@paCodigo

                               SET @s_mensaje = 'EJECUCION COMPLETADA 1'

                 IF @@error <> 0

                   BEGIN

                        SET @i_resultado =-50100

                        SET @s_mensaje = 'Ocurrió un error en la actualización.'

                   End

               else  begin

                        SET @i_resultado = 1

                        SET @s_mensaje = 'EJECUCION COMPLETADA 2'

                 end

           end   

           IF @i_resultado = 1

                 COMMIT TRANSACTION

           ELSE

                 ROLLBACK TRANSACTION

    end

    GRACIAS

    jueves, 22 de mayo de 2014 0:17