Bonjour
J'ai un bizzare de problème.
Mon appli, était d'abord liée à une base de donnée SQL Express (MDF). Dans mon appli, j'ai un DataGridView, qui était "binder" à un tableadapter, dans un dataset. Très simple comme adapteur, voici la requête SQL:
Ça fonctionnait #1, j'avais un beau datagrid qui me montrait pour chaque Product ID de ma table ProductCatalog, combien j'en avait dans ma table Inventory.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT (SELECT COUNT(*) FROM Inventory as I WHERE c.ProductID = I.ProductID) as ProductCount, c.ProductID, c.ProductName, c.ProductCUP FROM ProductCatalog as c
Voilà que j'ai changé la BD pour une SQL Compact (SDF). Même structure de BD (Très simple vous en conviendrez, 2 tables.).
Lorsque je refais mon datatable, et que j'écris la même requête, j'ai une erreur que je n'arrive pas à fixé.
D'abord, VS2008 aime changer le code, en ré-écrivant ma requete comme ceci:
Il ajoute automatiquement "as Expr1" après la parenthèse du Count(*).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT (SELECT COUNT(*) as Expr1 FROM Inventory as I WHERE c.ProductID = I.ProductID) as ProductCount, c.ProductID, c.ProductName, c.ProductCUP FROM ProductCatalog as c
Ensuite, il me retourne un message (Je n'ai pas le message exacte désolé) qui dit qu'il y a un problème de token. À mon avis, le fait qu'il ajoute Expr1 après fait que la structure du select n'est plus valide.
Mais je ne sais pas comment faire pour que VS2008 ne change pas mon code, mais surtout, ce que je trouve étrange, c'est que ça se produit seulement lorsque j'ai changé ma BD de MDF à SDF.
Ce peut-il que les BD SQL compact ne support pas les Count()? Je trouverais ça vraiment bizzare, mais je ne trouve aucune doc la dessus sur le web. Peut-être que je cherche mal.
Votre aide serait grandement apprécié!
Merci beaucoup.
Sébastien Gignac.
Partager