none
datagriew RRS feed

  • Pregunta

  • bueno mi duda es la siguiente: cuando preto un dato en el data griew que esta en l 3 fila y coloco eliminar pero m elimina como 3 datos artiro si alguien me puede ayudar porfavor este es el codigo que tengo en el boton eliminar

     

     Private Sub BtonElimar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtonElimar.Click
            Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=I:\cotizacion1.mdb")

     

                If MsgBox("Desea Eliminar el Registro", MsgBoxStyle.OkCancel) = vbOK Then

     

                    If vbOK Then

                        con.Open()

                        Dim cmd As New OleDbCommand("Delete from Ingreso where NºDocumento=@NºDocumento", con)

                        cmd.Parameters.AddWithValue("@NºDocumento", Me.txtdocumentos.Text)
                        Try

                            cmd.ExecuteNonQuery()
                            MessageBox.Show("Registro Eliminado")
                            txtdocumentos.Text = ""
                            txtdetalle.Text = ""
                            txtmonto.Text = ""
                            txtmontototal.Text = ""
                            txtdocumentos.Focus()
                            For Each row As DataGridViewRow In Me.DataGridView1.Rows
                                Me.DataGridView1.Rows.Remove(Me.DataGridView1.CurrentRow)
                                row.Cells("Nºdocumento").Value = txtdocumentos.Text
                                row.Cells("fecha").Value = Label5.Text
                                row.Cells("detalle").Value = txtdetalle.Text
                                row.Cells("Monto").Value = txtmonto.Text
                                row.Cells("Monto_Total").Value = txtmontototal.Text

                            Next
                        Catch ex As Exception

     

                        End Try

     

                    End If

     

                End If

                con.Close()

            End Using


        End Sub

    jueves, 2 de diciembre de 2010 13:07

Respuestas

  • Vale, Vamos a ver 

    En primer lugar tendrás que eliminar el registro de la BD:

    Dim cmd As New OleDbCommand("Delete from Ingreso where NºDocumento=@NºDocumento", con)

                        cmd.Parameters.AddWithValue("@NºDocumento", Me.txtdocumentos.Text)

    try

    cmd.ExecuteNonQuery()

    'Ahora vamos a borrarlo del grid

    For each row as DataGridViewRow in DataGridView1.Rows

    if row.Cells("NºDocumento").Value.ToString()= txtdocumentos.Text then

    DataGridView1.Rows.Remove(row)

    exit for

    end if

    next

    MessageBox.Show("El registro se ha eliminado satisfactoriamente.")

     Catch ex As Exception

     MessageBox.Show("Se ha encontrado el siguiente error: " & ex.Message.ToString())

                        End Try


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 jueves, 2 de diciembre de 2010 13:31
    jueves, 2 de diciembre de 2010 13:21
    Moderador

Todas las respuestas

  • Hola Koke, ya te lo dije en otro mensaje pero no me hiciste caso, Intenta poner descruipciones mejores a los titulos en lugar de usar "DataGriView" o cosas similares, pon algo como "Problema al eliminar registros en DataGridView"...

    Por partes,

     

    el segundo if que tienes en el codigo "if VbOk then" te sobraria ya que lo estas comprobando con el MsgBox en el if anterior.

    Lo segundo estás eliminando por el valor que tienes en un textbox, y luego estas recorriendo todas las filas de tu grid, y las vas eliminando, haces refernecia a ellas, pero como tienes un try catch donde no haces nada con la excepcion no estás apreciando que tendría que salirte una excepcion....

    Podrias replantear la situacion exacta que quieres realizar?


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    jueves, 2 de diciembre de 2010 13:12
    Moderador
  • lo q kro realizar es cuando preto un dato o consulto un dato que me elimine y tbn ese dato se me elimine en el data griew eso kro pero no me sale
    jueves, 2 de diciembre de 2010 13:15
  • Vale, Vamos a ver 

    En primer lugar tendrás que eliminar el registro de la BD:

    Dim cmd As New OleDbCommand("Delete from Ingreso where NºDocumento=@NºDocumento", con)

                        cmd.Parameters.AddWithValue("@NºDocumento", Me.txtdocumentos.Text)

    try

    cmd.ExecuteNonQuery()

    'Ahora vamos a borrarlo del grid

    For each row as DataGridViewRow in DataGridView1.Rows

    if row.Cells("NºDocumento").Value.ToString()= txtdocumentos.Text then

    DataGridView1.Rows.Remove(row)

    exit for

    end if

    next

    MessageBox.Show("El registro se ha eliminado satisfactoriamente.")

     Catch ex As Exception

     MessageBox.Show("Se ha encontrado el siguiente error: " & ex.Message.ToString())

                        End Try


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta koke1 jueves, 2 de diciembre de 2010 13:31
    jueves, 2 de diciembre de 2010 13:21
    Moderador
  • gracias don jtorrecilla y disculpa por no explicar bn m problema
    jueves, 2 de diciembre de 2010 13:31