Bonjour à tous!

La fonction ci-dessous modifie le nom d'un auteur dans une table qui ne comprend que deux champs: un numéro (autoincrémenté) d'auteur et le nom d'auteur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
''' <summary>
''' Correction d'un auteur
''' </summary>
''' <param name="cAutOld">ancien nom d'auteur</param>
''' <param name="cAutNew">Nouveau nom d'auteur</param>
 
Function UpdateAuteur(ByVal cAutOld As String, ByVal cAutNew As String) As Integer
 
Try
    Dim oQuerryResult = From oTblAuteurs In oScanDataContext.TblAuteurs _
                               Where oTblAuteurs.Auteur Like cAutOld _
                               Select oTblAuteurs
    If oQuerryResult.Count > 0 Then
        With oTblAuteurs
              .Auteur = cAutNew
        End With
       Try
           oScanDataContext.SubmitChanges(ConflictMode.ContinueOnConflict)
           Return 1
       Catch ex As Exception
         MsgBox(ex.Message, MsgBoxStyle.Critical, My.Settings.pAppEnteteBox)
         Return 0
       End Try
    End If
Catch ex As Exception
     MsgBox(ex.Message, MsgBoxStyle.Critical, My.Settings.pAppEnteteBox)
     Return 0
End Try
End Function
Bien que ce code ne génère pas d'erreur et que la ligne "oScanDataContext.SubmitChanges(ConflictMode.ContinueOnConflict)" est exécutée, la nouvelle orthographe de l'auteur n'est pas sauvée dans la table.

Auriez-vous une solution pour résoudre ce problème? Existe-t-il une autre méthode pour faire des updates avec LINQ to SQL?

Merci d'avance!
Avec mes sincères salutations,
Paul Van Walleghem