2010-03-05 4 views
0

Je suis en train d'avoir la collection d'ID de commande utilisé dans ma déclaration où comment ça se fait que je ne peux pas obtenir ce travail?C# LINQ assemblage et où la déclaration ne fonctionne pas

List<int> orders = new List<int>(){1,2,3,4,5}; 

DataTable dtTable1 = getOrders(); 
DataTable dtTable2 = getOrderDetails(); 
var results = from a in dtTable1.AsEnumerable() 
       join b in dtTable2.AsEnumerable() on a.Field<int>("ID") equals b.Field<int>("ID") 
       where orders.Contains(b.Field<int>("OrderID")) 
       select a; 
+1

Ne dites pas "ça ne marche pas". Quel est le problème? Il ne compile pas? Cela donne une erreur d'exécution? Il ne produit pas les résultats attendus (auquel cas, quelle est la différence)? – Aaronaught

Répondre

2

conjecture sauvage:

on a.Field<int>("ID") equals b.Field<int>("OrderID") 
+0

Nope notice j'utilise un tableau de Int pour comparer avec le champ dans la table b. où orders.Contains (b.Field ("OrderID")) – BlackTea

0

La syntaxe me semble bon. Et comme ce sont des types de valeur, je m'attends à ce que les comparaisons fonctionnent bien. Êtes-vous sûr d'avoir sélectionné les bonnes colonnes pour vos données spécifiques? Peut-être que vous pouvez nous dire les valeurs dans vos tableaux et ce que vous attendez de voir.

Questions connexes