none
controlar agregar una columna a datagridview

    Pregunta

  • tengo el siguiente codigo para cargar una informacion de una DB, y agregar una columna en el datagrid que cargo la informacion para insertar una fecha y grabarla.....todo este codigo lo tengo dentro de un button

    El problema es que cuando ejecuto el evento click de button,, me carga la informacion y me agrega la columna,,,,pero si lo vuelvo a presionar me carga otra columna....y otra....y otra.-...,,,,como puedo controlar eso,,,,,

    agradeceria mucho la colaboracion!!!

    este es el codigo:

    AbrirConexion()

     

    Dim SQLPendientes_Pagos As String = "select a.cedulasociado cedula,a.nombreintegrado, a.fecha_solicitud_retiro, a.fecha_proyectada_cruce from crystal.dbo.retiro_asociados a inner join coonfie.dbo.nits b on a.cedulasociado=b.nit and a.Fecha_Proyectada_Pago is null"

     

    Dim Adapter_Pagos As New SqlDataAdapter(SQLPendientes_Pagos, Connection)

     

    Dim Dataset_Pagos As New DataSet

    Adapter_Pagos.Fill(Dataset_Pagos)

    DtgvPendientesPagos.DataSource = Dataset_Pagos.Tables(0)

    DtgvPendientesPagos.Columns.Add(

    "fecha_pago", "fecha_pago")

    martes, 4 de enero de 2011 14:42

Respuestas

Todas las respuestas

  • Saludo, Trata poniendo la propiedad

     

    TableAdapter.ClearBeforeFill = true

    despues de su declaracion



    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    • Editado Angel Jimenez martes, 4 de enero de 2011 15:11 Modificar
    martes, 4 de enero de 2011 15:10
  • Yo lo hago con un "Dataset_Pagos.Reset()" antes del fill, pero seguramente como te indica Ángel también funcione. La idea es limpiar el dataset antes de volver a asignarle datos.

     

    Saludos!

    martes, 4 de enero de 2011 15:15
  • NO TE ENTIENDO .....TABLEADAPTER?¿?¿

    EL PROBLEMA LO TENGO QUE CUANDO CLICKEO MAS DE UNA VEZ EL BUTTON ME EJECUTA IGUAL NUMERO DE VECES EL SIGUIENTE CODIGO:

     DtgvPendientesPagos.Columns.Add("fecha_pago", "fecha_pago")

    POR CONSECUENCIA ME VA AGREGANDO VARIAS COLUMNAS FECHA_PAGO....PERO SOLO QUIERO UNA COLUMNA

    martes, 4 de enero de 2011 15:18
  • Hola

    Por que no deshablitas el boton despues del primer click.

    o borra las columnas antes de establecer el datasource

     

     DtgvPendientesPagos.Columns.Clear()

     

    saludos.


    Colom
    martes, 4 de enero de 2011 15:30
  • Prueba este ejemplo:

     

            Dim col As DataGridViewColumn = DtgvPendientesPagos.Columns("fecha_pago")

            If col Is Nothing Then

                DataGridView1.Columns.Add("fecha_pago", "fecha_pago")

            End If


    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
    martes, 4 de enero de 2011 15:30
    Moderador
  • YA LO INTENTE CON EL "Dataset_Pagos.Reset()" ,,,PERO NADA....ME SIGUE AGREGANDO LA COLUMNA.,,,
    martes, 4 de enero de 2011 15:33
  • hola

    podrias intentar usando

    DtgvPendientesPagos.DataSource = Nothing
    DtgvPendientesPagos.Columns.Clear()


    Dim SQLPendientes_Pagos As String = "select a.cedulasociado cedula,a.nombreintegrado, a.fecha_solicitud_retiro, a.fecha_proyectada_cruce from crystal.dbo.retiro_asociados a inner join coonfie.dbo.nits b on a.cedulasociado=b.nit and a.Fecha_Proyectada_Pago is null"

    Dim Adapter_Pagos As New SqlDataAdapter(SQLPendientes_Pagos, Connection)

    Dim Dataset_Pagos As New DataSet
    Adapter_Pagos.Fill(Dataset_Pagos)

    DtgvPendientesPagos.DataSource = Dataset_Pagos.Tables(0)

    DtgvPendientesPagos.Columns.Add("fecha_pago", "fecha_pago")

     

    de esta forma inicializas la grilla eliminado datos y columnas, para luego volver a definirlas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 4 de enero de 2011 15:50
  •  

    una consulta porque las columans no als defines en timepo de diseño

    o sea podrias definir todas las columnas en timepo de diseño asignando el DataPropertyName , salvo para esta columna de fecha que als defines sin esta propiedad porque no se binda a ningun campo del Dataset

    revisa la primer seccion de este articulo

    [DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn

    alli explico como definir las columasn en timepo de diseño

    de esta forma evitarias este problema que estas teniendo y ademas controlas que columasn se muestran y cuales se enlazan a datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 4 de enero de 2011 15:53
  • YA LO RESOLVI,,,,,CON LA AYUDA DE COLOM,,,,,,,,,

    SOLO DEBIA BORRAR EL DATAGRIDVIEW ANTES DE VOLVERLO A CARGAR CON LA INFORMACION DE LA DB.

    MUCHAS GRACIAS...

    martes, 4 de enero de 2011 15:57

  • que bien, igualmente analzia el tema de definir als columasn en timepo de diseño, por el planteo que ahces lo veo que puede quedar aun mejor

    asi no defines columnas desde codigo, y puede controlar el diseño

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 4 de enero de 2011 16:07