Prova Access DataTable easiest way che può aiutarti a ottenere l'idea perfetta per accedere a DataTable, DataSet usando Linq ...
Considerare il seguente esame ple, supponiamo di avere DataTable come di seguito.
DataTable ObjDt = new DataTable("List");
ObjDt.Columns.Add("WorkName", typeof(string));
ObjDt.Columns.Add("Price", typeof(decimal));
ObjDt.Columns.Add("Area", typeof(string));
ObjDt.Columns.Add("Quantity",typeof(int));
ObjDt.Columns.Add("Breath",typeof(decimal));
ObjDt.Columns.Add("Length",typeof(decimal));
Qui sopra è il codice per DatTable, qui si assume che vi sono alcuni dati sono disponibili in questo DataTable, e dobbiamo impegnare vista schematica del particolare elaborando alcuni dati come mostrato sotto.
Area | Quantità | Respiro | Lunghezza | Prezzo = Quantità * respiro * Lunghezza
di quello che abbiamo al fuoco seguente query che ci darà risultato esatto come vogliamo.
var data = ObjDt.AsEnumerable().Select
(r => new
{
Area = r.Field<string>("Area"),
Que = r.Field<int>("Quantity"),
Breath = r.Field<decimal>("Breath"),
Length = r.Field<decimal>("Length"),
totLen = r.Field<int>("Quantity") * (r.Field<decimal>("Breath") * r.Field<decimal>("Length"))
}).ToList();
Non ci resta che assegnare questa variabile di dati come origine dati.
Utilizzando questa semplice query LINQ che possiamo ottenere tutto il nostro accetta, e anche noi in grado di eseguire tutte le altre query LINQ con questo ...
fonte
2013-04-07 13:54:13
"Ho ricevuto un errore": quale errore ottieni? –
l'errore è: Il tipo 'AnonymousType # 1' non può essere utilizzato come parametro di tipo 'T' nel tipo generico o metodo 'System.Data.DataTableExtensions.CopyToDataTable (System.Collections.Generic.IEnumerable )'. Non esiste alcuna conversione implicita del riferimento da "AnonymousType # 1" a "System.Data.DataRow". –
possibile duplicato di [Eccezione utilizzando CopyToDataTable con query LINQ?] (Http://stackoverflow.com/questions/1072120/exception-using-copytodatatable-with-linq-query) –