nck2040
Legacy Member
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.
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)
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 Function
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.

, 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 ..
, 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