C# DataTable ist ein zentrales Objekt, das für den Zugriff auf die meisten Objekte und Daten im Zusammenhang mit der Datentabelle verwendet wird. Da die Datentabelle große Datenmengen umfasst und nicht in einem organisierten Format vorliegt, muss ein Filter angewendet werden. Um die Filtereigenschaften in DataTable in Bezug auf C# zu erfüllen, ist es erforderlich, dass der Filter die Daten in einem optimierten C#-Datenbankfilter anordnet und anordnet.
Syntax:
Es gibt keine spezifische Syntax für den C#-DataTable-Filter, er nutzt jedoch die Filterfunktionen, die mit Spalten verknüpft sind, die wie folgt dargestellt werden:
dataView.RowFilter = "s_id=180";
Die mit Literalen verknüpfte DataTable-Filterfunktion wird wie folgt dargestellt:
dataView.RowFilter = "s_name = 'anu'"
Die mit Zahlenwerten verknüpfte DataTable-Filterfunktion wird wie folgt dargestellt:
dataView.RowFilter = "dt_of_brth = 1987"
Die Filterfunktion in C# wird meistens dann verwendet, wenn die Datenmenge und die damit verbundenen Vorgänge sehr zahlreich sind. Wenn die in der DataTable vorhandenen Daten zunehmen, ist der einzige Retter in Bezug auf die Zeilen- und Spaltenfilterung der Filter in der DataTable.
Lassen Sie uns das Arbeitsmuster zum Filtern von DataTable in C# überprüfen:
Im Folgenden finden Sie Beispiele für C#-DataTable-Filter:
Dieses Programm demonstriert das Filtern und Abrufen von Zeilendaten unter Verwendung der SELECT-Anweisung als Filteranweisung für jede AND-, OR- und NOT-Bedingung und gibt jede Zahl zurück, die größer als die genannte Zahl, jedoch kleiner als die andere Obergrenze ist, wie in gezeigt die Ausgabe.
Code:
using System; using System.Data; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Data.DataSetExtensions; public class Data_tbl_Demo { public static void Main() { DataTable tbl_1 = new DataTable("Creation of Data for players"); tbl_1.Columns.Add(new DataColumn("Size_of_team", typeof(int))); tbl_1.Columns.Add(new DataColumn("Team_work", typeof(char))); tbl_1.Rows.Add(50, 'c'); tbl_1.Rows.Add(100, 'c'); tbl_1.Rows.Add(250, 'd'); tbl_1.Rows.Add(567, 'd'); tbl_1.Rows.Add(123, 'd'); DataRow[] rslt = tbl_1.Select("Size_of_team >= 123 AND Team_work = 'd'"); foreach (DataRow row in rslt) { Console.WriteLine("{0}, {1}", row[0], row[1]); } } }
Ausgabe:
Dieses Programm wird verwendet, um den DataTable-Filterausdruck zu demonstrieren, der verwendet wird, um ein Array von DataRow-Objekten nach der Sortierung in absteigender Reihenfolge zurückzugeben, wie in der Ausgabe gezeigt.
Code:
using System; using System.Data; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Data.DataSetExtensions; public class Data_tbl_Demo { public static void Main() { DataTable tbl2_2 = new DataTable("Orders_plcd"); tbl2_2.Columns.Add("Order_ID", typeof(Int32)); tbl2_2.Columns.Add("Order_Quantity", typeof(Int32)); tbl2_2.Columns.Add("Company_Name", typeof(string)); tbl2_2.Columns.Add("Date_on_day", typeof(DateTime)); DataRow nw_row = tbl2_2.NewRow(); nw_row["Order_ID"] = 1; nw_row["Order_Quantity"] = 5; nw_row["Company_Name"] = "New_Company_Nm"; nw_row["Date_on_day"] = "2014, 5, 25"; tbl2_2.Rows.Add(nw_row); DataRow nw_row2 = tbl2_2.NewRow(); nw_row2["Order_ID"] = 2; nw_row2["Order_Quantity"] = 6; nw_row2["Company_Name"] = "New_Company_Nm2"; tbl2_2.Rows.Add(nw_row2); DataRow nw_row3 = tbl2_2.NewRow(); nw_row3["Order_ID"] = 3; nw_row3["Order_Quantity"] = 8; nw_row3["Company_Name"] = "New_Company_Nm3"; tbl2_2.Rows.Add(nw_row3); string exprsn = "Date_on_day = '5/25/2014' or Order_ID = 2"; string sort_Order = "Company_Name DESC"; DataRow[] sorted_Rows; sorted_Rows = tbl2_2.Select(exprsn, sort_Order); for (int i = 0; i < sorted_Rows.Length; i++) Console.WriteLine(sorted_Rows[i][2]); } }
Ausgabe:
Dieses Programm demonstriert die Auswahlabfrage, bei der die DataTable nach zwei übereinstimmenden Zeilen sucht, die Datumsangaben im neueren Format haben, und mit DateTime gefiltert wird, wie in der Ausgabe gezeigt.
Code:
using System; using System.Data; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Data.DataSetExtensions; public class Using_Date_Time { public static void Main() { DataTable tbl_dt_time = new DataTable("Widgets"); tbl_dt_time.Columns.Add(new DataColumn("rw_ID", typeof(int))); tbl_dt_time.Columns.Add(new DataColumn("Date", typeof(DateTime))); tbl_dt_time.Rows.Add(180, new DateTime(2003, 1, 1)); tbl_dt_time.Rows.Add(123, new DateTime(2000,1, 1)); tbl_dt_time.Rows.Add(350, new DateTime(2001,1, 1)); DataRow[] filterd_result = tbl_dt_time.Select("Date > #6/1/2001#"); foreach (DataRow row in filterd_result) { Console.WriteLine(row["rw_ID"]); } } }
Ausgabe:
Dieses Programm veranschaulicht einen ungültigen Ausdruck, indem es einen Wert wie A auswählt, der nicht als wahr oder falsch ausgewertet wird und einen unangenehmen Fehler auslöst, der unerwünscht ist.
Code:
using System; using System.Data; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Data.DataSetExtensions; public class Using_Date_Time { public static void Main() { DataTable table = new DataTable(); table.Columns.Add("Anusua", typeof(int)); table.Rows.Add(1); table.Rows.Add(2); table.Rows.Add(3); table.Rows.Add(4); table.Rows.Add(5); DataRow[] rows = table.Select("Anusua"); System.Console.WriteLine(rows.Length); } }
Ausgabe:
Hinweis: Um die oben beschriebene Situation der Auswertung der Datentabelle und der Filterung der Datentabelle durch Auswertung von Werten zu überwinden, beziehen Sie diese Anweisungen richtig ein.
Anweisungen enthalten Zeilen wie:
DataRow[] rows = table.Select(“Anusua > 1”);
System.Console.WriteLine(rows.Length);
Die beiden oben genannten Zeilen liefern die erforderliche Ausgabe, wenn sie ordnungsgemäß ausgeführt werden, indem die Select-Anweisung wie im zuvor genannten Beispiel ersetzt wird.
Die Ausgabe lautet:
Dieses Programm demonstriert die zu filternde Datentabelle und führt eine Summenoperation aus, die sich innerhalb des als Summe erstellten Objekts befindet. Daraus wird die erforderliche Summe ermittelt und angezeigt, wie in der Ausgabe gezeigt.
Code:
using System; using System.Data; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Data.DataSetExtensions; public class Program { public static void Main() { DataTable dt_4 = new DataTable(); dt_4.Columns.Add("emp_Id",typeof(int)); dt_4.Columns.Add("customer_Name",typeof(string)); dt_4.Columns.Add("Amount_type",typeof(decimal)); dt_4.Rows.Add(1,"A",50); dt_4.Rows.Add(2,"b",68); dt_4.Rows.Add(3,"c",22); dt_4.Rows.Add(4,"d",null); decimal dec_ml = 0; object sum_Obj; sum_Obj = dt_4.Compute("Sum(Amount_type)", string.Empty); decimal total = dt_4.AsEnumerable().Where(r => !r.IsNull("Amount_type") && decimal.TryParse(r["Amount_type"].ToString(), out dec_ml)).Sum(r => dec_ml); Console.WriteLine(sum_Obj); Console.WriteLine(total); } }
Ausgabe:
DataTable spielt in C# und in jeder anderen Programmiersprache eine entscheidende Rolle beim Umgang mit großen Datenmengen. Auch das Filtern in Bezug auf die Datenbank und ihre nachfolgende Teilmenge spielt eine wichtige Rolle, da eine Datenbank im Hinblick auf das Abrufen und Abrufen von Daten aus einer Datenbank immer optimiert und effizient sein sollte.
Das obige ist der detaillierte Inhalt vonC#-DataTable-Filter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!