Marie-pascale Delamare d'après Visual Basic 2010 Éditions ENI et les documentations Microsoft.
La lecture de données et le remplissage d'un DataSet : La méthode Fill de l'objet TableAdapter ou
tableAdaptaterEtudiant pour nous, permet d'extraire les données d'une source de données en exécutant la
requête SQL spécifiée dans la propriété SelectCommand. Elle prend en paramètre le DataSet instancié et le
nom de la DataTable instanciée (tableEtudiant pour nous) à remplir avec les données retournées.
Dans notre exemple voici une méthode de notre classe Etudiant:
Public Function lireTousLesEtudiants() As Integer
'accès à la base de données
tableAdaptaterEtudiant.Fill(tableEtudiant)
Return tableEtudiant.Count
End Function
On récupère donc tous les étudiants dans l'objet "tableEtudiant".
La mise à jour de données avec un DataAdapter et un DataSet : La méthode Update de l'objet TableAdapter
ou tableAdaptaterEtudiant pour nous, permet de répercuter sur une source de données les modifications
effectuées dans un DataSet instancié. Cette méthode admet un objet DataSet qui contient les données
modifiées et un objet DataTable optionnel qui contient les modifications à extraire.
Dans notre exemple voici un extrait d'une méthode de notre classe Etudiant permettant de supprimer un
étudiant de la base de données :
Dim numligne As Integer
Dim numerreur As Integer
Dim nombre As Integer
' remplir la table avec le contenu de la base
nombre = lireTousLesEtudiants()
'on recherche la ligne correspondant au numéro de l’étudiant pour cela on trie
tableEtudiant.DefaultView.Sort = "numero ASC"
'ici on récupère le numéro de ligne correspond au numéro de l’étudiant
numligne = tableEtudiant.DefaultView.Find(numero)
'si la clef n'est pas trouvée dans la table
If numligne = -1 Then
numerreur = 1
Else
numerreur = 0
'Supression de la ligne
tableEtudiant.DefaultView(numligne).Delete()
'accès à la base de données par appel à la couche persistance
tableAdaptaterEtudiant.Update(tableEtudiant)
End If
Return numerreur
On marque donc comme supprimée la ligne de la tableEtudiant concernant l'étudiant à supprimer avant de
répercuter dans la base de données. Ici la tableEtudiant contient tous les étudiants, on aurait pu imaginer de ne
recharger la tableEtudiant qu'avec l'étudiant à supprimer.
Mais comment ADO .NET assure-t-il la relation entre les données d'un DataSet instancié et celles contenues
dans une base de données? En réalité, lorsque la méthode Update est invoquée l'objet TableAdapter analyse
les modifications effectuées au niveau de la collection DataRow. En fonction des modifications rencontrées, les