C# DataTable.Select DataRow [SQL 二次搜尋]
C# DataTable.Select DataRow [SQL 二次搜尋]
資料來源: https://learn.microsoft.com/zh-tw/dotnet/api/system.data.datatable.select?view=net-7.0
Code01
private void GetRowsByFilter() { DataTable table = DataSet1.Tables["Orders"]; // Presuming the DataTable has a column named Date. string expression; expression = "Date > #1/1/00#"; DataRow[] foundRows; // Use the Select method to find all rows matching the filter. foundRows = table.Select(expression); // Print column 0 of each returned row. for(int i = 0; i < foundRows.Length; i ++) { Console.WriteLine(foundRows[i][0]); } }
Code02[無SQL+過濾+排序]
using System; using System.Data; public class A { public static void Main() { DataTable table = new DataTable("Orders"); table.Columns.Add("OrderID", typeof(Int32)); table.Columns.Add("OrderQuantity", typeof(Int32)); table.Columns.Add("CompanyName", typeof(string)); table.Columns.Add("Date", typeof(DateTime)); DataRow newRow = table.NewRow(); newRow["OrderID"] = 1; newRow["OrderQuantity"] = 3; newRow["CompanyName"] = "NewCompanyName"; newRow["Date"] = "1979, 1, 31"; // Add the row to the rows collection. table.Rows.Add(newRow); DataRow newRow2 = table.NewRow(); newRow2["OrderID"] = 2; newRow2["OrderQuantity"] = 2; newRow2["CompanyName"] = "NewCompanyName1"; table.Rows.Add(newRow2); DataRow newRow3 = table.NewRow(); newRow3["OrderID"] = 3; newRow3["OrderQuantity"] = 2; newRow3["CompanyName"] = "NewCompanyName2"; table.Rows.Add(newRow3); // Presuming the DataTable has a column named Date. string expression = "Date = '1/31/1979' or OrderID = 2"; // string expression = "OrderQuantity = 2 and OrderID = 2"; // Sort descending by column named CompanyName. string sortOrder = "CompanyName ASC"; DataRow[] foundRows; // Use the Select method to find all rows matching the filter. foundRows = table.Select(expression, sortOrder); // Print column 0 of each returned row. for (int i = 0; i < foundRows.Length; i++) Console.WriteLine(foundRows[i][2]); } }
One thought on “C# DataTable.Select DataRow [SQL 二次搜尋]”
C# DataTable.Select DataRow [SQL 二次搜尋]
無 SQL 資料庫 搜尋/尋找 取代方案
C# DataTable中執行DataTable.Select(“條件”)
https://www.twblogs.net/a/5b9215ec2b71772002d26b4d
Select方法:
Select();//全部查出來
Select(過濾條件);//根據過濾條件進行過濾,如Select(“columnname1 like ‘%xx%'”);
Select(過濾條件,排序字段);//過濾,並排序,如Select(“columnname1 like ‘%xx%'”,columnname2);
00.支援SQL IN 語法
01.支援SQL LIKE 語法
02.支援SQL關係運算式 >,=,<=,!=,=
03.支援SQL邏輯運算式 AND,OR
04.支援四則運算式
PS.不支援 : BETWEEN AND
//DataTable.Select("條件") 返回 DataTable
DataTable newdt = new DataTable();
newdt = dt.Clone(); // 克隆dt 的結構,包括所有 dt 架構和約束,並無數據;
DataRow[] rows = dt.Select(conditions); // 從dt 中查詢符合條件的記錄;
foreach (DataRow row in rows) // 將查詢的結果添加到dt中;
{
newdt.Rows.Add(row.ItemArray);
}