Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penapis Jadual Data C#

Penapis Jadual Data C#

WBOY
WBOYasal
2024-09-03 15:33:17487semak imbas

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"

Bagaimana untuk Menapis Jadual Data dalam C#?

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#:

  • Menapis Jadual Data dalam C# tidak unik dan berbeza daripada jenis teknik penapisan lain; namun, ia boleh dicapai dalam pelbagai cara.
  • Menapis pelbagai cara Jadual Data termasuk kaedah pilih(Rentetan), yang memilih baris atau lajur yang diperlukan dan kemudian berdasarkan itu menggunakan penapis.
  • Penapisan boleh dilakukan menggunakan operator logik Select, Where, AND, OR, NOT dan di atasnya menggunakan nilai juga di sana.
  • Baris dan lajur Data yang terdapat dalam jadual data juga menggunakan kaedah pengisihan, yang mengisih dan menyusun data dalam format Menaik atau Menurun mengikut keperluan.
  • Memilih rentetan sebagai enumerable berguna semasa menyimpan sebarang objek, dan kemudian menggunakan penapis dan operasi susunan berdasarkan pengiraan membantu dalam memberikan hasil yang diingini.
  • Penilaian DataTable dengan rentetan yang berkaitan juga perlu dijaga berkenaan dengan fungsi pulangan benar atau palsu.

Contoh Penapis Jadual Data C#

Diberikan di bawah adalah contoh Penapis Jadual Data C#:

Contoh #1

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:

Penapis Jadual Data C#

Contoh #2

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:

Penapis Jadual Data C#

Contoh #3

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:

Penapis Jadual Data C#

Contoh #4

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:

Penapis Jadual Data C#

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:

Penapis Jadual Data C#

Contoh #5

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:

Penapis Jadual Data C#

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:C# Jadual DataArtikel seterusnya:C# Jadual Data