Versuchen Sie Access DataTable easiest way, die Ihnen helfen kann, die perfekte Idee für den Zugriff auf DataTable, DataSet mit Linq ...
Betrachten Sie folgende Prüfung Nehmen wir an, wir haben DataTable wie unten.
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));
Hier oben ist der Code für DatTable, hier gehen wir davon aus, dass es einige Daten in dieser Datentabelle zur Verfügung, und wir haben Grid zu binden Ansicht insbesondere durch einige Datenverarbeitung wie unten gezeigt.
Fläche | Menge | Atem | Länge | Preis = Menge * Atem * Länge
als wir folgende Abfrage Feuer haben, die uns genaue Ergebnis geben wird, wie wir wollen.
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();
Wir müssen diese Datenvariable nur als Datenquelle zuweisen.
Durch diese einfache Linq Abfrage können wir unser bekommen alle akzeptiert, und wir können auch alle anderen LINQ-Abfragen mit diesem durchführen ...
"Ich bekomme einen Fehler": Welchen Fehler bekommen Sie? –
der Fehler ist: Der Typ 'AnonymousType # 1' kann nicht als Typ Parameter 'T' im generischen Typ oder Methode 'System.Data.DataTableExtensions.CopyToDataTable (System.Collections.Generic.IEnumerable )' verwendet werden. Es gibt keine implizite Referenzkonvertierung von 'AnonymousType # 1' zu 'System.Data.DataRow'. –
möglich Duplikat von [Ausnahme mit CopyToDataTable mit LINQ-Abfrage?] (Http://stackoverflow.com/questions/1072120/exception-using-copytodatatable-with-linq-query) –