none
Problema con eliminar FIla GridView RRS feed

  • Pregunta

  • Hola amigos como estan? espero que bien tengo un problema con eliminar una fila, he intentado de todo pero no se elimina. se agradeceria mucho

     Protected Sub GridView1_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) 
     
            Dim id As Integer = Convert.ToInt32(GridView1.DataKeys(e.RowIndex).Value)
    
            Try
                Using cn1 As New SqlConnection(StrDB)
                    cn1.Open()
                    Dim cmd2 As New SqlCommand("DELETE FROM AREAS_PARTICIPANTES WHERE CORRELATIVO=@CORRELATIVO", cn1)
                    cmd2.Parameters.AddWithValue("@CORRELATIVO", (id))
                    cmd2.ExecuteNonQuery()
    
                    Dim script As String = String.Format("alert('{0}');", "La TIPO_RESULTADOS de Financiamiento ha sido Eliminada correctamente")
                    ScriptManager.RegisterStartupScript(Me, GetType(Page), "alertaerror", script, True)
    
    
    
                End Using
            Catch ex As Exception
                LabelProblema.Visible = True
                LabelProblema.Text = ex.Message
            End Try
    
    
            Try
                Using cn1 As New SqlConnection(StrDB)
                    cn1.Open()
                    Dim strQuery1 As String = "SELECT  A.CORRELATIVO, B.DESCRIPCION  FROM  AREAS_PARTICIPANTES A, AREAS B WHERE A.PROYECTO=@PROYECTO AND A.AREA=B.AREA "
                    Dim cmd As New SqlCommand(strQuery1, cn1)
                    cmd.Parameters.AddWithValue("@PROYECTO", CStr(txtProyecto1.Text))
                    Dim sda As New SqlDataAdapter(cmd)
                    sda.Fill(dt)
                    GridView1.DataSource = dt
                    GridView1.DataBind()
    
                End Using
            Catch ex As Exception
                LabelProblema.Visible = True
                LabelProblema.Text = ex.Message
            End Try
    
        End Sub
    

    Codigo aspx


     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderStyle="Ridge" 
                                                            BorderWidth="2px" CellPadding="4" CellSpacing="1" GridLines="None" Height="49px" ShowHeader="False"
                                                            style="margin-right: 0px" Width="874px" ><AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                                              <Columns><asp:BoundField DataField="CORRELATIVO" HeaderText="CODIGO"><HeaderStyle BackColor="#CCCCCC" ForeColor="Black" />
                                                              <ItemStyle HorizontalAlign="Center" Width="250px" /></asp:BoundField>
                                                              <asp:BoundField DataField="DESCRIPCION" HeaderText="AREA"><HeaderStyle BackColor="#CCCCCC" ForeColor="Black" Width="700px" />
                                                              <ItemStyle HorizontalAlign="Center" Width="450px" /></asp:BoundField>
                                                              <asp:CommandField ButtonType="Image" SelectImageUrl="~/Images/editar.gif" ShowSelectButton="True" />                                                                                                              
                                                            <asp:CommandField ShowDeleteButton="True" />
                                                        </Columns><EditRowStyle BackColor="#999999" /><FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" 
                                                         ForeColor="White" /><PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                                               <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /><SelectedRowStyle BackColor="#E2DED6" 
                                                               Font-Bold="True" ForeColor="#333333" /><SortedAscendingCellStyle BackColor="#E9E7E2" />
                                                                <SortedAscendingHeaderStyle BackColor="#506C8C" /><SortedDescendingCellStyle BackColor="#FFFDF8" />
                                                                <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView>
                                                            


    Ignacio Garrido Mi Blog: http://so-iso.blogspot.com/

    martes, 21 de mayo de 2013 14:31

Respuestas

  • Hola en el HTML debes de tener el DataKeyNames:

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    CellPadding="4" ForeColor="#333333" GridLines="None"
    DataKeyNames="correlativo"
    />

    Esa columnas "CORRELATIVO" debes de traerla con el Query que llena tu GridView


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos


    • Editado José Barba martes, 21 de mayo de 2013 15:31
    • Marcado como respuesta detalle martes, 21 de mayo de 2013 15:36
    martes, 21 de mayo de 2013 15:30

Todas las respuestas

  • Hola pero veo que en el GridView no tienes esto:

    DataKeyNames="id"

    Sino declaras ese DataKeyNames es lógico que no funcione. Yo le puse "id" pero allí deberá de ir esa columna "CORRELATIVO".

    Esta línea si es correcta aquí obtienes el valor de ese DataKeyNames del GridView

     Dim id As Integer = Convert.ToInt32(GridView1.DataKeys(e.RowIndex).Value)


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos



    martes, 21 de mayo de 2013 14:38
  • hola

    pero como es que detectas que no elimina ? se produce algun error

    si pones un breakpoint en el codigo puedes validar que se ejecuta el codigo ?

    o simplemente lo notas porque luego de eliminar el valor sigue apareciendo en el grid

    ----

    puedes hacer

    Dim cantafectadas As Integer = cmd2.ExecuteNonQuery()

    si haces esto que valor recibes

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 21 de mayo de 2013 15:02
  • hola

    pero como es que detectas que no elimina ? se produce algun error

    si pones un breakpoint en el codigo puedes validar que se ejecuta el codigo ?

    o simplemente lo notas porque luego de eliminar el valor sigue apareciendo en el grid

    ----

    puedes hacer

    Dim cantafectadas As Integer = cmd2.ExecuteNonQuery()

    si haces esto que valor recibes

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Gracias por responder, cuando hago click a eliminar no sucede nada, ademas del Dim cantafectadas As Integer = cmd2.ExecuteNonQuery() que le agrege no sucede nada, gracias por responder

    Ignacio Garrido Mi Blog: http://so-iso.blogspot.com/

    martes, 21 de mayo de 2013 15:24
  • Hola pero veo que en el GridView no tienes esto:

    DataKeyNames="id"

    Sino declaras ese DataKeyNames es lógico que no funcione. Yo le puse "id" pero allí deberá de ir esa columna "CORRELATIVO".

    Esta línea si es correcta aquí obtienes el valor de ese DataKeyNames del GridView

     Dim id As Integer = Convert.ToInt32(GridView1.DataKeys(e.RowIndex).Value)


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos



    Me da un error dice que el DataKeyNames no esta declarado, como se representa el codigo? saludos y gracias por responder

    Ignacio Garrido Mi Blog: http://so-iso.blogspot.com/

    martes, 21 de mayo de 2013 15:26
  • Hola en el HTML debes de tener el DataKeyNames:

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    CellPadding="4" ForeColor="#333333" GridLines="None"
    DataKeyNames="correlativo"
    />

    Esa columnas "CORRELATIVO" debes de traerla con el Query que llena tu GridView


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos


    • Editado José Barba martes, 21 de mayo de 2013 15:31
    • Marcado como respuesta detalle martes, 21 de mayo de 2013 15:36
    martes, 21 de mayo de 2013 15:30