Toon posts:

[VB.NET] combobox; date/time format & data binding

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste,

Voor mijn project VB.NET moet ik een lijst met vertrek en aankomsttijden uit een datatable in een combobox laden, maar deze moeten geformat worden naar hh:mm.
Weet iemand hoe dit kan?

Als bijlage geef ik mijn huidige code mee (zonder formatting)

> de displaymembers van cbVertrekTijden en cbAankomstTijden zouden moeten geformat weergegeven worden.
vertrek- en aankomstuur zijn Date/Time velden
trajectId is Nummeriek
ik gebruik een Access database.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Private Sub vertrekTijdenLaden(ByVal trajectId As Integer)

        Dim sqlStringVertrektijden As String = "SELECT vertrekuur, aankomstuur, trajectId from tblVertrektijden where trajectId =" & trajectId
        Dim oDABestellingen As New OleDbDataAdapter
        Dim oDS As New DataSet
        oDABestellingen = New OleDbDataAdapter(sqlStringVertrektijden, conn)
        oDABestellingen.Fill(oDS, "tblVertrektijden")

        cbVertrekTijden.DataSource = oDS.Tables("tblVertrektijden")
        cbVertrekTijden.ValueMember = "trajectId"
        cbVertrekTijden.DisplayMember = "vertrekuur"

        cbAankomstTijden.DataSource = oDS.Tables("tblVertrektijden")
        cbAankomstTijden.ValueMember = "trajectId"
        cbAankomstTijden.DisplayMember = "vertrekuur"

    End Sub


Alvast bedankt,
Maarten M.

[ Voor 4% gewijzigd door Verwijderd op 13-05-2007 14:59 ]


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 01-12 21:38
Allereerst, zet het even tussen code tags.

Je moet gewoon je database waarde omzetten naar een Date object, en dan bijv dit:
Visual Basic:
1
2
3
4
5
6
dim str as string
dim dt as Date

dt  = Date.parseDate(**Je database value**)

str = dt.Hours.toString() + ":" + dt.Minutes.toString()

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

De ComboBox heeft een FormatString property. http://msdn2.microsoft.co...bobox_members(vs.80).aspx

Je zou ook kunnen zorgen dat in je SQL statement de date goed wordt gezet.

[ Voor 22% gewijzigd door mulder op 13-05-2007 15:00 ]

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
@DoDo: Ik ben geen vb.net expert en ik slaag er bijgevolg niet in om dit in de huidige code te implementeren

@DonFacundo door het SQL statement naar hetvolgende te veranderen:


code:
1
Dim sqlStringVertrektijden As String = "SELECT FORMAT(vertrekuur,'hh:mm'), FORMAT(aankomstuur,'hh:mm'), trajectId FROM tblVertrektijden WHERE trajectId=" & trajectId


en vervolgens voor mijn display en valuemembers:

code:
1
2
3
4
5
6
7
        cbVertrekTijden.DataSource = oDS.Tables("tblVertrektijden")
        cbVertrekTijden.ValueMember = "trajectId"
        cbVertrekTijden.DisplayMember = "FORMAT(vertrekuur,'hh:mm')"

        cbAankomstTijden.DataSource = oDS.Tables("tblVertrektijden")
        cbAankomstTijden.ValueMember = "trajectId"
        cbAankomstTijden.DisplayMember = "FORMAT(aankomstuur,'hh:mm')"


maar dit plaatst in mijn cbVertrektijden en cbAankomsttijden het trajectid (valuemember)

Alvast bedankt voor de snelle reactie.

[ Voor 35% gewijzigd door Verwijderd op 13-05-2007 15:15 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Je haalt nu twee verschillende dingen door elkaar.

Je kan de FormatString property van de ComboBox zetten. dus cbAankomstTijden.FormatString = "{hh:mm}" (oid)

OF

Je zorgt dat in de DataSet de datum al goed staat, je hoeft dan niks meer in VB.Net code te doen.

Edit: de code van DoDo gaat idd in dit geval niet werken, tenzij je 1 voor 1 de items zou toevoegen; wat je niet wilt.

[ Voor 17% gewijzigd door mulder op 13-05-2007 15:16 ]

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
code:
1
cbVertrekTijden.FormatString = "HH:mm"


doet het.

Bedankt.

[ Voor 52% gewijzigd door Verwijderd op 13-05-2007 15:24 ]

Pagina: 1