P. 1
MS VB.NET 2003

MS VB.NET 2003

|Views: 471|Likes:
Published by Jean-Luc

More info:

Categories:Types, Speeches
Published by: Jean-Luc on Apr 21, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/08/2015

pdf

text

original

Le remplissage des éléments d’un DataSet se fait à l’aide de la méthode Fill de l’objet
DataAdapter. Plusieurs configurations sont possibles pour la récupération des données en
raison de la surcharge de la méthode Fill :

Quelque soit la surcharge utilisée, la méthode Fill a la capacité d’ouvrir et de fermer la
connexion utilisée pour la création du DataAdapter. Attention, si vous accéder plusieurs à des
tables via un DataAdapter, il est préférable d’ouvrir et fermer vous même la connexion.

Microsoft Visual Basic . Net - Août 2003

122/139

• Remplir un DataTable existant

La première possibilité consiste à remplir une DataTable déjà existant : dans ce cas, la
structure du DataTable doit correspondre au jeu de résultat retourné. Nous verrons plus tard
qu’il est possible de passer outre cette possibilité en utilisant un Mappage des données. La
méthode Fill prend en paramètres un DataSet ainsi que le nom de la table à remplir.

'definition dataset et datatable
Dim ds As New DataSet("monds")
Dim t As New DataTable("matable")
Dim col1 As New Data.DataColumn("num", GetType(Integer))
Dim col2 As New Data.DataColumn("lib", GetType(String))
t.Columns.Add(col1)
t.Columns.Add(col2)
ds.Tables.Add(t)

'connexion (définition mais pas ouverture)
Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\bd2.mdb;"

'remplissage datatable à partir du DataAdapter
Dim da As New OleDb.OleDbDataAdapter("select * from Table1", cn)
da.Fill(ds, "matable")

• Créer et remplir un nouveau DataTable

La seconde possibilité permet de laisser au DataAdapter le soin de créer le DataTable
ainsi que sa structure. Dans ce cas, il suffit d’appeler la méthode Fill en passant en paramètre
le nom d’un DataTable inexistant.

'definition dataset et datatable
Dim ds As New DataSet("monds")

'connexion (définition mais pas ouverture)
Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\bd2.mdb;"

'remplissage datatable à partir du DataAdapter
Dim da As New OleDb.OleDbDataAdapter("select * from Table1", cn)
da.Fill(ds, "matable")

• Récupérer un certain nombre d’enregistrements

Microsoft Visual Basic . Net - Août 2003

123/139

Il est possible lors de l’appel de la méthode Fill de spécifier quelles sont les lignes de
la requête à récupérer. Pour cela, on utilise deux paramètres qui sont l’indice de départ et le
nombre maximal d’enregistrement à récupérer. Cette signature permet en particulier de
générer un affichage par page en récupérant tour à tour les 10 premiers enregistrements, les 10
suivants etc…

L’exemple suivant récupère 10 enregistrements à partir du 50 ème.

Dim da As New OleDb.OleDbDataAdapter("select * from Table1", cn)
da.Fill(ds, 50, 10, "toto")

• Remplissage de Datatable multiples

Il est également possible de remplir plusieurs DataTable à partir d’un seul
DataAdapter en passant en paramètres plusieurs requêtes séparées par des points virgules :

Attention, lors de la création des DataTable, la méthode Fill les nomme « Table1 »,
Table2 … Il est donc vivement conseillé de renommer les tables après exécution.

'connexion (définition mais pas ouverture)
Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\bd2.mdb;"

'remplissage datatable à partir du DataAdapter
Dim da As New OleDb.OleDbDataAdapter("select * from Client;Select * from
Produit;Select * from Commande", cn)
da.Fill(ds, "matable")
ds.Tables(1).TableName = “Client”
ds.Tables(2).TableName = “Produit”
ds.Tables(3).TableName = “Commande”

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->