Bonjour, je début en C# et j'ai besoin de récupérer le résultat d'une requête linq dans une datatable, j'ai utilisé le code suivant:
en m'inspirant de l'exemple suivant, trouvé sur le site msdn à cette adresse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public DataTable resultrequete(DataTable table) { var query = from ag in table.AsEnumerable() where ag.Field<string>("Nom").StartsWith("B") select new { Matricule = ag.Field<string>("Matricule"), Nom = ag.Field<string>("Nom"), Prenom = ag.Field<string>("Prenom"), NomCourt = ag.Field<string>("NomCourt") }; DataTable dataresult; dataresult = query.CopyToDataTable(); return dataresult ; }
http://msdn.microsoft.com/fr-fr/library/bb386921.aspx
Mais je récupère l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 // Fill the DataSet. DataSet ds = new DataSet(); ds.Locale = CultureInfo.InvariantCulture; FillDataSet(ds); DataTable orders = ds.Tables["SalesOrderHeader"]; DataTable details = ds.Tables["SalesOrderDetail"]; var query = from order in orders.AsEnumerable() join detail in details.AsEnumerable() on order.Field<int>("SalesOrderID") equals detail.Field<int>("SalesOrderID") where order.Field<bool>("OnlineOrderFlag") == true && order.Field<DateTime>("OrderDate").Month == 8 select new { SalesOrderID = order.Field<int>("SalesOrderID"), SalesOrderDetailID = detail.Field<int>("SalesOrderDetailID"), OrderDate = order.Field<DateTime>("OrderDate"), ProductID = detail.Field<int>("ProductID") }; DataTable orderTable = query.CopyToDataTable();J'ai essayé plusieurs alternatives, mais au final je me retrouve toujours bloqué. Pouvez vous me donner de quoi m'aiguiller?Le type 'AnonymousType#1' ne peut pas être utilisé comme paramètre de type 'T' dans le type ou la méthode générique 'System.Data.DataTableExtensions.CopyToDataTable<T>(System.Collections.Generic.IEnumerable<T>)'. Il n'y a pas de conversion de référence implicite de 'AnonymousType#1' en 'System.Data.DataRow'.
Merci d'avance.
Partager