我对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;
答案 0 :(得分:16)
通过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 );
}
答案 1 :(得分:3)
答案 2 :(得分:2)
DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable();
这应该实现你想要的,基本上你可以像SQL一样查询数据表。
答案 3 :(得分:1)
return table;
DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable();