OVH Cloud OVH Cloud

dataset, fill et dataadapter

2 réponses
Avatar
Ambassadeur Kosh
Bonjour

le cas qui me préoccuppe est un dataset typé constitué de plusieurs
DataTable. je pose sur la Form les dataadapter consacrés à chaque table, et
je dispose d'une action "apperçu des données" dans le menu bouton droit.
ce qui est classieux, c'est le "remplir dataset" en se basant sur "tous les
dataadapter". cette action determine l'ordre dans lequel il faut remplir les
tables, car voyez vous, vu qu'il y'a des references entre datatable, il y'a
un ordre.

pour l'instant, dans mon programme, cet ordre, c'est moi qui le determine
statiquement a chaque fois et le code obtenu ressemble fort à ceci :

sqlDataAdapter1.Fill(dataset) ;
sqlDataAdapter3.Fill(dataset) ;
sqlDataAdapter4.Fill(dataset) ;
sqlDataAdapter2.Fill(dataset) ;
...

si je ne respecte pas le bon ordre, je charge des données qui référencent
des données encore inexistantes. ce qui a le mauvais gout d'être non
fonctionel et par la même occasion trés irritant.
alors cette fonctionalité est elle accessible pour nous les simples, ou
vais-je devoir me reecrire la petite usine de l'ordre partiel sur les
dependances 1-N entre DataTables, ou alors me contenter du calcul à la
main...

d'avance merci

2 réponses

Avatar
Eric Guillemette
La propriété EnforceConstraints du DataSet est là pour ça. Si elle est à
false, les contraintes ne sont pas appliquées au dataset, donc l'ordre des
adapteurs n'a pas d'importance.

MyDataSet.EnforceConstraints = false; //Ne pas prendre en charge les
contraintes
sqlDataAdapter1.Fill(dataset) ;
sqlDataAdapter3.Fill(dataset) ;
sqlDataAdapter4.Fill(dataset) ;
sqlDataAdapter2.Fill(dataset) ;
MyDataSet.EnforceConstraints = true; //Prendre en charge les contraintes

Eric

"Ambassadeur Kosh" wrote in message
news:
Bonjour

le cas qui me préoccuppe est un dataset typé constitué de plusieurs
DataTable. je pose sur la Form les dataadapter consacrés à chaque table,


et
je dispose d'une action "apperçu des données" dans le menu bouton droit.
ce qui est classieux, c'est le "remplir dataset" en se basant sur "tous


les
dataadapter". cette action determine l'ordre dans lequel il faut remplir


les
tables, car voyez vous, vu qu'il y'a des references entre datatable, il


y'a
un ordre.

pour l'instant, dans mon programme, cet ordre, c'est moi qui le determine
statiquement a chaque fois et le code obtenu ressemble fort à ceci :

sqlDataAdapter1.Fill(dataset) ;
sqlDataAdapter3.Fill(dataset) ;
sqlDataAdapter4.Fill(dataset) ;
sqlDataAdapter2.Fill(dataset) ;
...

si je ne respecte pas le bon ordre, je charge des données qui référencent
des données encore inexistantes. ce qui a le mauvais gout d'être non
fonctionel et par la même occasion trés irritant.
alors cette fonctionalité est elle accessible pour nous les simples, ou
vais-je devoir me reecrire la petite usine de l'ordre partiel sur les
dependances 1-N entre DataTables, ou alors me contenter du calcul à la
main...

d'avance merci




Avatar
Ambassadeur Kosh
"Eric Guillemette" a écrit dans le
message de news:
La propriété EnforceConstraints du DataSet est là pour ça. Si elle est à
false, les contraintes ne sont pas appliquées au dataset, donc l'ordre des
adapteurs n'a pas d'importance.

MyDataSet.EnforceConstraints = false; //Ne pas prendre en charge les
contraintes
sqlDataAdapter1.Fill(dataset) ;
sqlDataAdapter3.Fill(dataset) ;
sqlDataAdapter4.Fill(dataset) ;
sqlDataAdapter2.Fill(dataset) ;
MyDataSet.EnforceConstraints = true; //Prendre en charge les contraintes

Eric




c'était aussi simple que ça... merci tout plein Eric.