-
30-03-2012, 23:44 #1Member
- Registered
- 03/02/04
- Location
- Hever
- Posts
- 916
- iTrader
- 47 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/4
Methode wordt niet gevonden in ASP
Voor school ben ik bezig met in project in ASP. We moeten werken met een database zodat je via een gridview kan editen en deleten enz. Daarbij maken we gebruik van de 3 lagen structuur met een DAL en BLL.
Nu had ik eerst mijn project gemaakt zonder OptimisticConcurrency maar dit moet voor de opdracht en nu probeer ik het dus aan te passen. Momenteel heb ik mij delete kunnen aanpassen maar bij het editen zegt hij dat hij hetvolgende:
ObjectDataSource AlleArbeiders kon geen niet-generieke methode UpdateArbeider vinden met parameters: magazijn_nr, naam, voornaam, leeftijd, contractverval, werkdagen, original_arbeider_nr, original_magazijn_nr, original_naam, original_voornaam, original_leeftijd, original_contractverval, original_werkdagen.
En dit is mijn code voor die methode (in mijn ArbeidersBLL)
zit mij hier al hele tijd op blind te staren en zou nochtans simpel moeten op te lossen zijn. Op mijn pagina met gridview had ik bij het begin van mijn project OldValuesParametersForm op {0} gezet maar die heb ik inmiddels veranderd naar original_{0} en ConflictDetection staat op CompareAllValues.Code:<System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, True)> _ Public Function UpdateArbeider(ByVal arbeider_nr As Integer, _ ByVal magazijn_nr As Integer, _ ByVal naam As String, _ ByVal voornaam As String, _ ByVal leeftijd As Integer, _ ByVal contractverval As Nullable(Of Date), _ ByVal werkdagen As Nullable(Of Integer), _ ByVal original_arbeider_nr As Integer, _ ByVal original_magazijn_nr As Integer, _ ByVal original_naam As String, _ ByVal original_voornaam As String, _ ByVal original_leeftijd As Integer, _ ByVal original_contractverval As Nullable(Of Date), _ ByVal original_werkdagen As Nullable(Of Integer)) As Boolean Dim arbeiders As Fabriekbeheer.tbl_arbeiderDataTable = Adapter.GetArbeiderByNr(arbeider_nr) If arbeiders.Count = 0 Then ' no matching record found, return false Return False End If Dim arbeider As Fabriekbeheer.tbl_arbeiderRow = arbeiders(0) AssignAllArbeiderValues( _ arbeider, original_magazijn_nr, original_naam, original_voornaam, _ original_leeftijd, original_contractverval, original_werkdagen) arbeider.AcceptChanges() AssignAllArbeiderValues( _ arbeider, magazijn_nr, naam, voornaam, leeftijd, contractverval, werkdagen) ' Update the product record Dim rowsAffected As Integer = Adapter.Update(arbeider) ' Return true if precisely one row was updated, otherwise false Return rowsAffected = 1 End Functionno votes
-
-
30-03-2012, 23:58 #2Member
- Registered
- 18/12/07
- Location
- Wijnegem
- Posts
- 1,158
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/5
kga het nu ni allemaal nazien en natellen, maar geeft gij bij aanroep evenveel parameters mee? en allemaal van het juiste type?
no votes
-
31-03-2012, 00:07 #3Member
- Registered
- 03/02/04
- Location
- Hever
- Posts
- 916
- iTrader
- 47 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/4
Ik denk het wel, ben nu nog eens mijn andere BLLs aant omvormen naar OptimisticConcurrency om te zien of het daar mss lukt. Is mij wel nog opgevallen dat bij die
Adapter.getArbeiders(arbeider_nr)
moet
Adapter.getArbeiders(original_arbeider_nr)
zijn
maar dit lost het probleem nog niet op ..no votes
-
31-03-2012, 13:43 #4
Uit je foutmelding blijkt dat je de methode oproept met een parameter te weinig (de eerste, arbeider_nr).
Trouwens, doe jezelf een plezier en werk in het Engels (en in C#). Zo wordt googlen op foutmeldingen heel wat eenvoudiger.no votes
-
31-03-2012, 14:12 #5Member
- Registered
- 03/02/04
- Location
- Hever
- Posts
- 916
- iTrader
- 47 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/4
De opdracht is in ASP dus ik kan moeilijk even in C# gaan werken (dat moeten we wel voor een andere opdracht). Nu, de methode die ik hier heb gepost bevat toch arbeider_nr? verdwijnt die niet gewoon in de foutmelding omdat die al als DataKey op mijn GridView staat of iets met die original_{0}?
no votes
-
31-03-2012, 14:42 #6no votes
-
31-03-2012, 14:50 #7Member
- Registered
- 03/02/04
- Location
- Hever
- Posts
- 916
- iTrader
- 47 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/4
Ja swaar, kheb het gewoon even verkeerd verwoord
, maar opdracht is dus in VB... Ik denk niet dat docent zal appreciƫren als je daarvan afwijkt, we werken overigens ook nog in Framework 2.0 ..
no votes
-
31-03-2012, 15:52 #8
Ah, mijn fout. Ik had verkeerd gelezen. Natuurlijk hang je vast aan VB als je in ASP werkt. Hoe kom ik er toch bij.
Het gaat over het (of een) moment waarop je die methode oproept.no votes
-
31-03-2012, 16:06 #9Member
- Registered
- 03/02/04
- Location
- Hever
- Posts
- 916
- iTrader
- 47 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/4
Ik heb het kunnen oplossen
, wel eigenlijk iets heel vreemd. Ik heb dus nog eens naar mijn EditItemTemplate van het label van arbeider_nr gekeken en daarvan de DataBinding. Die stond eerst op zo'n standaard binding wizard en heb em dan op custom gezet, dan werkte het, maar als ik nu trug kijk staat het trug identiek als daarvoor eig maar toch werkt het... Mss dat ergens die Bind niet meer goed doorgevoerd werd ofzo. Heel eigenaardig vind ik wel maar kan gelukkig zijn :P
no votes

