Vous êtes sur la page 1sur 1

,

Le Data Binding (liaison de donnes)


Le Data Bindings est laction dassocier un Data Source des contrles comme des TextBox, des
DataGridView ou encore des ListBox.
Le fait de lier les contrle la source de donnes va viter de parcourir la source est de lire les
donnes une une afin de les afficher.
Plusieurs composants visuels (Form, TextBox, ListBox,) possdent une proprit DataSource
et /DataBindings qui permet dassocier directement une source de donnes au composant en
question. La source de donnes peut-tre le rsultat dune requte SQL (select).
Liaison avec une zone de Texte : Des donnes provenant dune source de donnes peuvent-tre
affiches dans de TextBox, condition de prvoir un moyen de navigation lintrieur de la source
de donnes (bouton next et previous)
La liaison dun DataSource un TextBox se fait par sa proprit DataBindings
textNumad.DataBindings.Add("Text", monDataSet, "ListeEtudiants.Numad")
La mthode Add applique au DataBindings prend trois arguments :
La proprit du composant visuel, en occurrence Text, puis que cest une zone de texte
Le nom du DataSet (la source de donnes)
Le nom du champ associ (DataTable.Nomcolonne)
picturePhoto.DataBindings.Add("image", monDataSet, "ListeEmp.photo", true);
Pour assurer une navigation lintrieur du DataSet, il faudra faire un BindingContext.
Dans une application Windows, la navigation entre les enregistrements d'une source de donnes est
manage par la couche de liaison de donnes. L'objet CurrencyManager associ une table ou
une vue d'un groupe de donnes prend en charge une proprit Position. La proprit Position est
utilise par le mcanisme de liaison de donnes pour faire en sorte que les diffrents contrles lisent
et crivent tous des donnes dans le mme enregistrement.
L'objet BindingContext parcourt les valeurs des proprits des diffrents objets CurrencyManager,
comme leur proprit Position .
this.BindingContext[monDataSet,"ListeEtudiants"].Position += 1;
ou comme suit
CurrencyManager cm;
cm = (CurrencyManager)BindingContext[monDataSet,"ListeEtudiants"];
cm.Position++;