login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array doorgeven via functie

Offline wickedsid - 01/09/2010 18:16 (laatste wijziging 01/09/2010 20:44)
Avatar van wickedsidLid Hoi,
mijn onderwerp lijkt simpel, kweet het, maar den uitleg is wa moeilijker.
mijn form1.vb:
  1. Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateChanged
  2.  
  3. Dim test As New vwkUur
  4. 'updated after comments
  5. Dim test2 As String()
  6. test2 = test.GetUren(calMaand.SelectionRange.Start)
  7.  
  8.  
  9.  
  10. For i = 0 To 3
  11. MsgBox(test2(i))
  12. Next
  13.  
  14.  
  15. End Sub


mijn vwkUur:
  1. Public Function GetUren(ByVal datum As String) As String()
  2. Dim query As String = "SELECT a.uur_tijd_id, a.uur_uur from tb_uur a, tb_dag b where a.uur_dag_id = b.dag_id and " _
  3. & "b.dag_dt = '" & datum & "'"
  4. Dim da As New OleDbDataAdapter(query, conn)
  5. Dim ds As New DataSet
  6. Dim dr As DataRow
  7. Dim i As Integer = 0
  8.  
  9. Try
  10. conn.Open()
  11. da.Fill(ds)
  12. For Each dr In ds.Tables(0).Rows
  13. GetUren = {ds.Tables(0).Rows(i).ItemArray(0), ds.Tables(0).Rows(i).ItemArray(1)}
  14. i = i + 1
  15. Next
  16.  
  17. Catch x As Exception
  18. MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error)
  19. Finally
  20. conn.Close()
  21.  
  22. End Try
  23.  
  24.  
  25. End Function


Ik heb dus een tabel met
uur_tijd_id uur_uur
1 08:00
3 12:00
4 13:00
2 17:00

deze id is gekoppeld aan telkens een textbox. Dus txtA moet de waarde van id = 1 inkomen (=8:00) txtB moet de waarde van id 3 in komen (12:00) enz.
Zoals ge kunt zien gebruik ik hiervoor een object.
ik roep van de class een functie aan die een array zou moeten teruggeven.
Nu wil'k natuurlijk graag dat ik in mijn form deze array kan uitlezen.
!! let op: het zijn max 4 id's. nooit meer, maar het kunnen er wel minder zijn !!

ik heb al zitten googlen en testen, maar vind het niet...
iemand een idee?
thanks!

5 antwoorden

Gesponsorde links
Offline Abbas - 01/09/2010 20:03
Avatar van Abbas Gouden medaille

Crew .NET
Wat is die GetUren op regel 13? En in je Form roep je twee keer de methode GetUren aan.
Offline wickedsid - 01/09/2010 20:39 (laatste wijziging 01/09/2010 21:19)
Avatar van wickedsid Lid Geturen is de functie in mijn class. in mijn class zelf ken ik op deze manier de uitkomst van mijn sql statement toe aan mijn functie (een soort return)
en nu je het zegt ja, ik roep die blijkbaar 2x op.
*heb dit even aangepast al*
Das mss al een fout, maar ook deels mijn vraag, hoe kan'k mijn array overlopen in mijn form (waar ik via een object mijn functie aanroep)

thanks
Offline Mario - 02/09/2010 14:13 (laatste wijziging 02/09/2010 14:14)
Avatar van Mario Crew algemeen Werkt perfect, alleen zou ik met het overlopen van je array naar de length kijken zodat je geen foutmelding krijgt als je array maar 2 elementen groot is.

  1. For i = 0 To test2.GetLength(0)
  2. MsgBox(test2(i))
  3. Next
Offline Ontani - 02/09/2010 14:58
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
titjes schreef:
Wat is die GetUren op regel 13? En in je Form roep je twee keer de methode GetUren aan.


Hetzelfde als Return ...
Offline wickedsid - 02/09/2010 20:19 (laatste wijziging 02/09/2010 22:37)
Avatar van wickedsid Lid
Mario schreef:
Werkt perfect, alleen zou ik met het overlopen van je array naar de length kijken zodat je geen foutmelding krijgt als je array maar 2 elementen groot is.

[..code..]

OPGELOST!!!
met een arraylist aan te maken als volgt

  1. 'FORM
  2. '------
  3. Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateSelected
  4.  
  5. Dim test As New vwkUur
  6. Dim test2 As New ArrayList
  7. Dim num As String
  8. test2 = test.GetUren(calMaand.SelectionRange.Start)
  9.  
  10. For Each num In test2
  11. msgbox(num)
  12. Next
  13.  
  14. 'vwkUur.vb
  15. '-----------
  16. Dim list As New ArrayList
  17.  
  18. Try
  19. conn.Open()
  20. da.Fill(ds)
  21. For Each dr In ds.Tables(0).Rows
  22. list.Insert(i, ds.Tables(0).Rows(i).ItemArray(0) & "-" & ds.Tables(0).Rows(i).ItemArray(1))
  23. 'in mijn form doe ik dan gewoon een substring van dit resultaat!!
  24. i = i + 1
  25. Next
  26.  
  27. Catch x As Exception
  28. MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error)
  29. Finally
  30. conn.Close()
  31.  
  32. End Try
  33.  
  34. Return list

toch bedankt voor alle hulp !!!!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s