...
Momenteel heb ik de volgende database indeling.
Nu heb ik code geschreven die het voor mekaar krijgt dmv. een recursieve functie en daar krijg ik wel resultaten terug, maar niet de juiste.
Als ik Zoon verwijder van vader, haalt hij netjes kind 1 tot 3 weg. Echter als ik Vader weghaal haalt hij ook alleen zoon en de kinderen daaronder weg. Hij haalt dus niet de items die een niveau terug staan ook weg.
De items die hij moet verwijderen onthoud hij dmv. een ArrayList.
Ik bereik dit met de volgende code:
Heeft een van jullie een idee hoe ik dit op kan lossen. Ik weet dat ik hier eerder ook al om gevraagt heb, maar het idee is me gewoon niet duidelijk (genoeg) om er een werkelijke code oplossing van te maken. Kwa logische gedachten kom ik er wel bij, hij moet dus terug naar het niveau waar hij eerst was. Maar code matig heb ik geen idee hoe ik dat kan uitwereken.
Alvast heel erg bedankt, 't heeft me alweer een aantal uurtjes coden gekost met debuggen en word er nu beetje zat van ! Wat zie ik over het hoofd?
Momenteel heb ik de volgende database indeling.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Vader \ Zoon \ Kind 1 \ Kind 2 \ Kind 3 \ Dochter \ Kind 1 \ Kind 1 \ Kind 2 Moeder \ Zoon \ Dochter [... etc ...] |
Nu heb ik code geschreven die het voor mekaar krijgt dmv. een recursieve functie en daar krijg ik wel resultaten terug, maar niet de juiste.
Als ik Zoon verwijder van vader, haalt hij netjes kind 1 tot 3 weg. Echter als ik Vader weghaal haalt hij ook alleen zoon en de kinderen daaronder weg. Hij haalt dus niet de items die een niveau terug staan ook weg.
De items die hij moet verwijderen onthoud hij dmv. een ArrayList.
Ik bereik dit met de volgende code:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| Sub buttonclick handles buttonclick.click Dim intMenunummer As Integer Dim y As Integer Dim intAantal, intCount As Integer intMenunummer = modVariabelen.intSelectedItem arrDelete.Clear() arrDelete.Add(intMenunummer) subRecursief(intMenunummer) intAantal = arrDelete.Count - 1 For y = 0 To intAantal Dim dbRecord As Data.DataRow Dim intPaginanummer As Integer Dim intValue As Integer intValue = Nothing intPaginanummer = Nothing intMenunummer = Nothing intValue = arrDelete.Item(intCount) [... dbcode voor verwijderen ...] If Not intAantal = intCount Then intCount = intCount + 1 End If Next y End If End sub Sub subRecursief(ByVal intMenunummer As Integer) Dim dbCount, dbAantal As Integer classBase.fVullenDataset("SELECT * FROM tbl_sitecontent_menu WHERE submenu='" & intMenunummer & "'", "tblRecursiefDelete", DS) classBase.fVullenDataset("SELECT count(*) AS dbCount FROM tbl_sitecontent_menu WHERE submenu='" & intMenunummer & "'", "tblRecursiefCount", DS) Dim dbRecordCount As Data.DataRow Try dbRecordCount = DS.Tables("tblRecursiefCount").Rows(0) dbAantal = dbRecordCount("dbCount").ToString Catch ex As Exception MessageBox.Show(ex.Message) End Try If Not dbAantal = 0 Then Dim dbRecord As Data.DataRow Dim i As Integer For i = 1 To dbAantal Try dbRecord = DS.Tables("tblRecursiefDelete").Rows.Item(dbCount) intMenunummer = CInt(dbRecord("menunummer")) arrDelete.Add(intMenunummer) ' subRecursief(intMenunummer) If Not dbAantal = dbCount Then dbCount = dbCount + 1 End If Catch ex As Exception System.Diagnostics.Debug.WriteLine(ex.Message) End Try Next i subRecursief(intMenunummer) End If End Sub |
Heeft een van jullie een idee hoe ik dit op kan lossen. Ik weet dat ik hier eerder ook al om gevraagt heb, maar het idee is me gewoon niet duidelijk (genoeg) om er een werkelijke code oplossing van te maken. Kwa logische gedachten kom ik er wel bij, hij moet dus terug naar het niveau waar hij eerst was. Maar code matig heb ik geen idee hoe ik dat kan uitwereken.
Alvast heel erg bedankt, 't heeft me alweer een aantal uurtjes coden gekost met debuggen en word er nu beetje zat van ! Wat zie ik over het hoofd?
[ Voor 9% gewijzigd door MikevanEngelen op 27-06-2005 19:58 ]