
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