Rumah > Artikel > pembangunan bahagian belakang > Penapis Jadual Data C#
C# DataTable ialah objek pusat yang digunakan untuk mengakses kebanyakan objek dan data yang berkaitan dengan jadual data. Memandangkan jadual data mengandungi data dalam jumlah yang besar dan tidak dalam format yang teratur, terdapat keperluan untuk menggunakan penapis. Untuk memenuhi sifat penapisan dalam Jadual Data yang berkaitan dengan C#, ia diperlukan untuk mendapatkan penapis untuk mengatur dan memesan penapis pangkalan data C# diperkemas data.
Sintaks:
Tiada sintaks khusus untuk penapis C# DataTable, tetapi tetap, ia menggunakan fungsi penapis yang dikaitkan dengan lajur yang diwakili seperti berikut:
dataView.RowFilter = "s_id=180";
Fungsi penapis Jadual Data yang dikaitkan dengan literal diwakili seperti berikut:
dataView.RowFilter = "s_name = 'anu'"
Fungsi penapis Jadual Data yang dikaitkan dengan nilai nombor ditunjukkan seperti berikut:
dataView.RowFilter = "dt_of_brth = 1987"
Fungsi penapis dalam C# kebanyakannya digunakan apabila data dan operasi yang berkaitan dengannya adalah besar dalam bilangan. Jika data hadir dalam Jadual Data semakin meningkat, maka satu-satunya penyelamat berkenaan dengan penapisan baris dan lajur ialah penapis dalam Jadual Data.
Mari kita semak corak kerja untuk menapis DataTable dalam C#:
Diberikan di bawah adalah contoh Penapis Jadual Data C#:
Atur cara ini menunjukkan penapisan dan pengambilan data baris dengan menggunakan penyataan pilih sebagai pernyataan penapis bagi setiap satu dengan keadaan DAN, ATAU dan NOT dan mengembalikan sebarang nombor yang lebih besar daripada nombor yang disebutkan tetapi kurang daripada had atas yang lain seperti yang ditunjukkan dalam outputnya.
Kod:
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]); } } }
Output:
Atur cara ini digunakan untuk menunjukkan ungkapan penapisan DataTable, yang digunakan untuk mengembalikan tatasusunan Objek DataRow selepas mengisih dalam tertib Menurun seperti yang ditunjukkan dalam output.
Kod:
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]); } }
Output:
Atur cara ini menunjukkan pertanyaan pilihan di mana Jadual Data mencari untuk dua baris yang sepadan yang mempunyai tarikh pada format yang lebih terkini dan ditapis menggunakan DateTime seperti yang ditunjukkan dalam output.
Kod:
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"]); } } }
Output:
Atur cara ini menggambarkan ungkapan tidak sah dengan memilih nilai seperti A yang tidak dinilai kepada benar atau palsu dan membuang ralat jahat yang tidak diingini.
Kod:
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); } }
Output:
Nota: Untuk mengatasi situasi menilai jadual data di atas dan menapis jadual data dengan menilai nilai, libatkan set pernyataan ini dengan betul.
Pernyataan termasuk baris seperti:
DataRow[] rows = table.Select(“Anusua > 1”);
System.Console.WriteLine(baris.Panjang);
Dua baris di atas akan memberikan output yang diperlukan jika dilaksanakan dengan betul dengan menggantikan pernyataan pilih seperti dalam contoh yang dinyatakan sebelum ini.
Output keluar sebagai:
Atur cara ini menunjukkan jadual data untuk ditapis dan melakukan operasi jumlah yang akan berada di dalam objek yang dicipta sebagai jumlah, dan daripada itu, jumlah yang diperlukan diperoleh dan dipaparkan seperti yang ditunjukkan dalam output.
Kod:
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); } }
Output:
DataTable dalam C# dan dalam mana-mana bahasa pengaturcaraan lain memainkan peranan penting apabila berurusan dengan sejumlah besar data. Penapisan berkenaan dengan pangkalan data dan subset berikutnya juga memainkan peranan penting kerana pangkalan data harus sentiasa dioptimumkan dan cekap dari segi mengambil dan mendapatkan semula data daripada pangkalan data.
Atas ialah kandungan terperinci Penapis Jadual Data C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!