Bonjour à tous,
Je développe une application en interaction avec une base de donnée, on m'a demandé de remonter toutes les données au chargement de l'application afin d'avoir une plus grande fluidité pendant l'utilisation de celle-ci.
(évidemment ils décident ça a 2 jours de la validation de cette étape de la programmation)
Je créé donc un DataSet, rempli par des DataTables.
J'aimerai joindre les tables par une Data relation mais je me confronte à une erreur :
Je créé ma relation de cette manière :
A l'execution voici le message d'erreur que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim relationiliiim As New DataRelation("ili_iim", DataSetGlobal.Tables(0).Columns(1), DataSetGlobal.Tables(2).Columns(1)) DataSetGlobal.Relations.Add(relationiliiim)
D'après la doc que j'ai lu sur MSDN, l'erreur vient du fait que dans le champ parent, il existe un ou plusieurs résultat(s) qui ne sont pas unique.Ces colonnes n'ont pas actuellement de valeurs uniques.
Or lorsque j'execute ma requête sur le serveur dans une table temporaire TEMP et que je fais un :
La table ne me retourne aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Produit,COUNT(*) FROM TEMP GROUP BY Produit HAVING COUNT(*) <> 1
Lorsque je ne fais qu'un simple :
Je vois bienque tous les count ont pour valeur 1 et que j'ai autant de résultat qu'il y a de ligne dans ma table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Produit, COUNT(*) FROM TEMP GROUP BY Produit
D'où peut venir le fait que visual studio me dise que les valeurs de mon champ ne sont pas uniques ? Si dans la table enfant il y a plusieurs lignes avec le même "Produit" est-ce grave (d'après la doc MSDN non) ?
Connaissez vous un autre moyen de remonter des table d'une base de données et de joindre ces tables ?
La DataRelation est-elle la seule façon de joindre plusieurs DataTables d'un même DataSet ?
Avez vous de l'aspirine ?
Merci à vous de prendre le temps de me lire et bonne journée !
----------
Précisions :
Les données sont remontées en 2minutes ~. Si je fais la jointure avant de remonter pour ne créer qu'une table, cela met plus de 10minutes et c'est trop long d'après l'utilisateur.
Si je fais mes requêtes en live à chaque clic, j'ai des freezes de 30sec ~ et même problème.
Je dois donc absolument arriver à optimiser la requête qui doit avoir lieu au chargement de l'application.
Partager