none
Ayuda con: se duplican registros al cargar datagridview con SqlDataAdapter RRS feed

  • Pregunta

  • Buenas tardes, por favor is ruego su ayuda.....

    El problema es el siguiente, tengo un Datagridwiev, que se carga al ejecutar un DataAdapter, que ejecuta un procedimiento almacenado, el problema es, que al  generarse el grid, me duplica todos los registros, me deberia mostrar 21 registros y me muestra 42 :(

    Ya hice comprobe el procedimiento almacenado, revise las tablas y estan bien, pero al cargar muestra dos veces los datos....

     

     

    Esta es mi declaracion de variables:

            Public contenido As DataTable = New DataTable("TblPago")
            Public ds As New DataSet
            Public Fecha As String
             Public Quincena As String
            Public i As Integer
           Private WithEvents DocImprimir As New PrintDocument
           Public Ruta As String

     

    En el evento FormLoad, llamo a mis procedimientos Privados, desarrollados en el formulario:

     

    Private Sub FormularioIngresoPagosDepartamento_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Conectar()
            FechaPago()
            RbTodos.Checked = True
            CargarDatagridwiev()
            sumatoria()
            AgregarColumna()
            GbCedula.Enabled = False
            GbDatos.Enabled = False
        End Sub

     

    El codigo del Procedimiento CargarDataGridwiev es el siguiente:

     Try
                Dim DaTos As New SqlDataAdapter("spBuscarPagos", Conexion)
                DaTos.SelectCommand.CommandType = CommandType.StoredProcedure
                DaTos.Fill(contenido)
                DGWPagos.AllowUserToAddRows = False
                DGWPagos.AllowUserToDeleteRows = False
                DGWPagos.AllowUserToOrderColumns = False
                Me.DGWPagos.DataSource = contenido
                DGWPagos.Refresh()
                'DaTos = Nothing
                'contenidoPagos.Clear()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
            End Try

     

    El codigo de agregar columna (Que no creo sea el problema, porque solo agrega una columna extra) es este:

    Private Sub AgregarColumna()
            DGWPagos.Columns.AddRange(New DataGridViewTextBoxColumn())
            DGWPagos.Columns(6).Name = "Fecha"
        End Sub

    Me podrian indicar que hago mal? o que estoy dejando de hacer?

    Mil gracias de antemano....

    lunes, 31 de enero de 2011 19:32

Respuestas

  • Me repsondo yo misma, logre solventarlo agregando antes del fill la siguiente linea:

    Contenido.Clear()

    Sin embargo, no comprendo, el porque se carga Dos veces los datos...

    Agradezco igual, si me explican el porque del problema.

    Saludos y gracias

    • Marcado como respuesta Roxseni jueves, 10 de febrero de 2011 20:17
    lunes, 31 de enero de 2011 19:55

Todas las respuestas

  • hola

    has olvidado poner el codigo del SP que devuelve los registros

    si estas realziando algun join entre tablas valida que este no duplique, prueba ejecutando el query en el Sel Server Management Studio para ver el resultado

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 31 de enero de 2011 19:37
  • Me repsondo yo misma, logre solventarlo agregando antes del fill la siguiente linea:

    Contenido.Clear()

    Sin embargo, no comprendo, el porque se carga Dos veces los datos...

    Agradezco igual, si me explican el porque del problema.

    Saludos y gracias

    • Marcado como respuesta Roxseni jueves, 10 de febrero de 2011 20:17
    lunes, 31 de enero de 2011 19:55
  • Hola Leandro, como indico en mi Pregunta, el SP se ejecuta perfectamente y no duplica, e igualmente no hay registros duplicados en la BD.....

    Sin embargo al cargar el Datagridwiev, duplica los registros.....

    miércoles, 2 de febrero de 2011 14:10

  • ok si eso lo habia entendido, lo que comentaba era validar la query que suas para cargar los datos en el DataGridView

    croe que es query puede estas duplciando registos, mas si esta usa JOINs a otras tablas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 2 de febrero de 2011 14:15
  • Hola LEandro, ya la consulta esta Validada, verificada y Probada varias veces, el punto es que algo esta ocurriendo al cargar los datos en el Grid....

    De todas Formas, gracias por tu tiempo

    jueves, 3 de febrero de 2011 15:43
  •      //hola tengo una duda al momento de pasar mis registros a otro datagried para guararlos en mi BD MYSQL me genera el regitro y duplicado con otro resgitro de puros cero AYUDA!!
    martes, 5 de agosto de 2014 20:17
  • Hola,deberias declara lavariable contenido dentro del procedimiento donde cargas el DataGridView,asi evitas tener que limpiarla con clear.

    Ejemplo

    Try
                Dim contenido As DataTable = New DataTable("TblPago")

                Dim DaTos As New SqlDataAdapter("spBuscarPagos", Conexion)
                DaTos.SelectCommand.CommandType = CommandType.StoredProcedure

                DaTos.Fill(contenido)
                DGWPagos.AllowUserToAddRows = False
                DGWPagos.AllowUserToDeleteRows = False
                DGWPagos.AllowUserToOrderColumns = False
                Me.DGWPagos.DataSource = contenido
                DGWPagos.Refresh()
                'DaTos = Nothing
                'contenidoPagos.Clear()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
            End Try

    martes, 23 de septiembre de 2014 6:54