False false false...

Saludos ralvaradot, mi problema es el siguiente... Es una tontería, seguro... Pero estoy intentando mostrar datos de un campo de fechas desde una bd sql en un listview... Y no lo consigo! :(
Solo consigo que me muestre en cada una de las filas false, false, false... No lista los datos de la bd. ¿Me podrías ayudar? GRACIAS!
Respuesta
1
Un listview se llena de esta manera:
ListView1.datasource = datatable1
ListView1.Datatext = "Nombre del campo a mostrar"
ListView1-ValueMember = "Nombre del campo id"
¿Estas haciendo eso? ¿Cuál es tu código? ¿En qué linea exactamente te da el error?
Este es el código que utilizo para llenar el list, es problema es que no lista los valores de las fechas de la bd, sino "false" en cada uno de los registros. No me da ningún error. Gracias, Saludos.
ListView1.LabelEdit = False
            'vaciamos el listview1
            ListView1.Items.Clear()
            RstTMP = New ADODB.Recordset
            RstTMP.Open(StrSQL, Conexion, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
            If Not RstTMP.EOF And Not RstTMP.BOF Then
                RstTMP.MoveFirst()
            End If
            Do While Not RstTMP.EOF
                For Each RstFld In RstTMP.Fields
                    'RECORREMOS EL RECODSET
                    Select Case UCase(Trim(RstFld.Name))
                        ' SI EL CAMPO ES NUMCANAL ASIGNAMOS A LA PROPIEDAD TEXT
                        ' DE LISTVIEW
                    Case "NUMCANAL"
                            ItmX = New ListViewItem
                            ItmX.Text = Trim("" & RstFld.Value)
                        Case Else
                            'EL RESTO ASIGMANOS A SUBITEMS TIENE QUE IR POR ORDEN
                            If UCase(Trim(RstFld.Name)) = "PRECIOKILO" Then
                                If RstFld.Value > 0 Then
                                    ItmX.ImageIndex = 1
                                Else
                                    ItmX.ImageIndex = 0
                                End If
                            End If
                            If UCase(Trim(RstFld.Name)) = "SINPRECIO" Then
                                If RstFld.Value = True Then
                                    ItmX.ImageIndex = 1
                                End If
                            End If
                            Dim fecha2 As Date
                            If UCase(Trim(RstFld.Name)) = "DATANACEMENTO" Then
                                subItmX = New ListViewItem.ListViewSubItem
                                subItmX.Text = Format(RstFld.Value, "dd/MM/yyyy")
                                ItmX.SubItems.Add(subItmX)
                            Else
                                subItmX = New ListViewItem.ListViewSubItem
                                subItmX.Text = Trim("" & RstFld.Value)
                                ItmX.SubItems.Add(subItmX)
                            End If
                    End Select
                Next
                ListView1.Items.Add(ItmX)
                N += 1
                If N = 40 Then
                    N = 1
                    Me.Refresh()
                End If
                RstTMP.MoveNext()
            Loop
Cuando agregas el subitems , lo estas haciendo mal de alli que te salga false
subItmX = New ListViewItem.ListViewSubItem
subItmX.Text = Trim("" & RstFld.Value)
ItmX. SubItems. Add(subItmX)
De las lineas anteriores, solo debes utilizar la siguiente:
ItmX. SubItems.Add("" & RstFld. Value)
Gracias ralvaradot! Solucionado.
Pero... donde tengo que dejar sólo esa línea es en el caso de la fecha, ya que en el else me son necesarias las tres (Lo comprobé y no funcionaba bien).
Conclusión: En el IF ... 'DATANACEMENTO' Then, debe haber sólo una línea:
-------------------------------              subItmX.Text = Format(RstFld.Value, "dd/MM/yyyy")
Saludos... y Gracias también por la prontitud. ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas