簡體   English   中英

我如何按列值過濾我的DataTable?

[英]How I can filter my DataTable by Column Value?

我有一個關於DataTable的問題。 我從數據庫中檢索DataTable ,其中一列包含1或0.現在我只想檢索該列中值為1的行。

該列的名稱是ACTIVATE

這是我的DataTable

DataTable table = new DataTable(TABLE);

//How can I filter here so ACTIVATE == 1?

adapter.Fill(table);

connection.Open();

selectcommand.ExecuteReader();

return table;

通過SQL(首選)

SELECT * FROM dbo.Table WHERE ACTIVATE = 1

通過Linq-To-Datatable (在內存中):

DataTable tblFiltered = table.AsEnumerable()
                             .Where(r => r.Field<int>("ACTIVATE") == 1)
                             .CopyToDataTable();

如果您仍在使用.NET 2,則可以使用DataTable.Select

DataRow[] filteredRows = table.Select("ACTIVATE = 1");

除此之外,您不需要selectcommand.ExecuteReader()來填充表。

DataTable table = new Datatable();
using(var con = new SqlConnection(connectionString))
using(var cmd = new SqlCommand("SELECT * FROM dbo.Table WHERE ACTIVATE = 1", con))
using(var da = new SqlDataAdapter(cmd))
{
    da.Fill( table );
}

你只需使用DataTable.Select如下:

 foundRows = table.Select("ACTIVATE = '1'");

它返回一個DataRow對象數組。

DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable();

這應該實現你想要的,基本上你可以像SQL一樣查詢數據表。

return table;
DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM