|
Categorieën >
VB.NET
array doorgeven via functie
wickedsid – 01/09/2010 18:16 (Laatst gewijzigd op 01/09/2010 20:44)
|
|
offline
|
Lid
|
Hoi,
mijn onderwerp lijkt simpel, kweet het, maar den uitleg is wa moeilijker.
mijn form1.vb:
Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateChanged
Dim test As New vwkUur
'updated after comments
Dim test2 As String()
test2 = test.GetUren(calMaand.SelectionRange.Start)
For i = 0 To 3
MsgBox(test2(i))
Next
End Sub
Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateChanged Dim test As New vwkUur 'updated after comments Dim test2 As String() test2 = test.GetUren(calMaand.SelectionRange.Start) For i = 0 To 3 MsgBox(test2(i)) Next End Sub
mijn vwkUur:
Public Function GetUren(ByVal datum As String) As String()
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 " _
& "b.dag_dt = '" & datum & "'"
Dim da As New OleDbDataAdapter(query, conn)
Dim ds As New DataSet
Dim dr As DataRow
Dim i As Integer = 0
Try
conn.Open()
da.Fill(ds)
For Each dr In ds.Tables(0).Rows
GetUren = {ds.Tables(0).Rows(i).ItemArray(0), ds.Tables(0).Rows(i).ItemArray(1)}
i = i + 1
Next
Catch x As Exception
MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
End Try
End Function
Public Function GetUren(ByVal datum As String) As String() 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 " _ & "b.dag_dt = '" & datum & "'" Dim da As New OleDbDataAdapter(query, conn) Dim ds As New DataSet Dim dr As DataRow Dim i As Integer = 0 Try conn.Open() da.Fill(ds) For Each dr In ds.Tables(0).Rows GetUren = {ds.Tables(0).Rows(i).ItemArray(0), ds.Tables(0).Rows(i).ItemArray(1)} i = i + 1 Next Catch x As Exception MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally conn.Close() End Try 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
|
|
|
offline
|

Crew .NET
|
Wat is die GetUren op regel 13? En in je Form roep je twee keer de methode GetUren aan.
|
wickedsid – 01/09/2010 20:39 (Laatst gewijzigd op 01/09/2010 21:19)
|
|
offline
|
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
|
Mario – 02/09/2010 14:13 (Laatst gewijzigd op 02/09/2010 14:14)
|
|
offline
|
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.
For i = 0 To test2.GetLength(0)
MsgBox(test2(i))
Next
For i = 0 To test2.GetLength(0) MsgBox(test2(i)) Next
|
wickedsid – 02/09/2010 20:19 (Laatst gewijzigd op 02/09/2010 22:37)
|
|
offline
|
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
'FORM
'------
Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateSelected
Dim test As New vwkUur
Dim test2 As New ArrayList
Dim num As String
test2 = test.GetUren(calMaand.SelectionRange.Start)
For Each num In test2
msgbox(num)
Next
'vwkUur.vb
'-----------
Dim list As New ArrayList
Try
conn.Open()
da.Fill(ds)
For Each dr In ds.Tables(0).Rows
list.Insert(i, ds.Tables(0).Rows(i).ItemArray(0) & "-" & ds.Tables(0).Rows(i).ItemArray(1))
'in mijn form doe ik dan gewoon een substring van dit resultaat!!
i = i + 1
Next
Catch x As Exception
MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
End Try
Return list
'FORM '------ Private Sub calMaand_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calMaand.DateSelected Dim test As New vwkUur Dim test2 As New ArrayList Dim num As String test2 = test.GetUren(calMaand.SelectionRange.Start) For Each num In test2 msgbox(num) Next 'vwkUur.vb '----------- Dim list As New ArrayList Try conn.Open() da.Fill(ds) For Each dr In ds.Tables(0).Rows list.Insert(i, ds.Tables(0).Rows(i).ItemArray(0) & "-" & ds.Tables(0).Rows(i).ItemArray(1)) 'in mijn form doe ik dan gewoon een substring van dit resultaat!! i = i + 1 Next Catch x As Exception MessageBox.Show(x.Message, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally conn.Close() End Try Return list
toch bedankt voor alle hulp !!!!
|
Dit onderwerp is gesloten.
|
|
|