Lier un dataset a un objet

cs_Pachanka Messages postés 19 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009 - 27 févr. 2006 à 10:52
cs_Pachanka Messages postés 19 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009 - 27 févr. 2006 à 13:45
plop,
je debute en vb.net et j'ai un ptit soucis.
J'ai compris (je pense) le fonctionnement du dataset/dataadapter, qd on modif le dataset, un update et zou les modifs sont repercutées dans la base. Seulement, je ne veux pas modif le dataset. Je cree des objets a partir des enregistrements du dataset, et j'aimerais que la maj des objets mette a jour le dataset. une idee?

2 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
27 févr. 2006 à 11:38
salut,



mettons-nous daccord, pour mettre à jour la bdd à partir du Dataset :

- tu fais des modifications dans le Dataset (ajout, suppression ou modification d'enregistrement).

- DataAdapter.Update(...)
dans ce cas, la bbd est mise à jour et les enregistrements du Dataset
sont marqués Unchanged. donc ton Dataset est "synchronisé" avec la bdd
(sauf cas des numéros auto qui risquent de ne pas correspondre).

jusque là je crois qu'on est daccord...



si par exemple tu
modifies une ligne (ajout, suppression ou modification) et que tu
souhaites que ces modifications soient prises en compte par le Dataset
uniquement (sans mettre à jour la bdd) il faut accepter les changements
dans le Dataset, pour cela tu peux utiliser selon le cas :

DataRow.AcceptChanges

DataTable.AcceptChanges

Dataet.AcceptChanges



le Dataset reflète tes
modifications mais n'est pas "synchronisé" avec la bdd. la ou les
lignes sont marquées comme Unchanged, donc un appel ultérieur à
DataAdapter.Update ne les concernera pas.



était-ce là ton problème ?




[ Dalida ]<hr>
pensez à indiquer la version du language
0
cs_Pachanka Messages postés 19 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 9 janvier 2009
27 févr. 2006 à 13:45
non ^^


je voudrais avoir le schéma objet-->dataset-->dataadapter-->bdd et inversement en partant de la bdd.
Il ne s'agit plus de lié le dataset a la bdd mais un objet(classe) qui a la meme structure que la table (plus ou moins).


exemple :


Dim oConnection As SqlConnection = New SqlConnection()
oConnection.ConnectionString = ConfigurationManager.AppSettings("SqlServer")


Dim oDataSet As New DataSet("ListeDeClients")


Dim oSqlDataAdapter As New SqlDataAdapter("SELECT * FROM CLIENTS", oConnection)
oSqlDataAdapter.Fill(oDataSet, "ListeDeClients")


dtr = oDataSet.CreateDataReader()
While dtr.Read()
ReDim Preserve tabSessions(i)
tabSessions(i) = New cClient(dtr("NUM_CLIENT"))
End While



ca me permet a partir du dataset de contruire un tableau de clients.
Apres dans le code, les users de l'appli vont modif ces objets. Je voudrais que les modifs faites se repercutent sur le dataset et par extension sur la bdd.
0
Rejoignez-nous