데이터 테이블을 필터링하려면 어떻게해야합니까?
사용자 정보가 포함 된 DataTable을 사용하고이 DataTable에서 사용자 또는 사용자 목록을 검색하려고합니다. 나는 그것을 시도하지만 작동하지 않습니다 :(
다음은 내 C # 코드입니다.
public DataTable GetEntriesBySearch(string username,string location,DataTable table)
{
list = null;
list = table;
string expression;
string sortOrder;
expression = "Nachname = 'test'";
sortOrder = "nachname DESC";
DataRow[] rows = list.Select(expression, sortOrder);
list = null; // for testing
list = new DataTable(); // for testing
foreach (DataRow row in rows)
{
list.ImportRow(row);
}
return list;
}
DataView를 사용할 수 있습니다.
DataView dv = new DataView(yourDatatable);
dv.RowFilter = "query"; // query example = "id = 10"
http://www.csharp-examples.net/dataview-rowfilter/
.NET 3.5 이상을 사용 Linq-To-DataTable
하는 경우 훨씬 더 읽기 쉽고 강력하기 때문에 대신 사용 하는 것이 좋습니다 .
DataTable tblFiltered = table.AsEnumerable()
.Where(row => row.Field<String>("Nachname") == username
&& row.Field<String>("Ort") == location)
.OrderByDescending(row => row.Field<String>("Nachname"))
.CopyToDataTable();
위의 코드는 예일 뿐이며 실제로 사용할 수있는 메서드 가 더 많습니다 .
추가해야 using System.Linq;
하고, 대한 AsEnumerable
받는 사람에 대한 참조를 확장 메서드 System.Data.DataSetExtensions
DLL ( 어떻게 ).
맑은:
list = null; // for testing
list = new DataTable(); // for testing
foreach (DataRow row in rows)
{
list.ImportRow(row);
}
사용하다:
.CopyToDataTable()
예:
string _sqlWhere = "Nachname = 'test'";
string _sqlOrder = "Nachname DESC";
DataTable _newDataTable = yurDateTable.Select(_sqlWhere, _sqlOrder).CopyToDataTable();
VB.NET에서 일하는 모든 사람을 위해 (경우에 따라)
Dim dv As DataView = yourDatatable.DefaultView
dv.RowFilter ="query" ' ex: "parentid = 0"
이 작업에는 DataView를 사용하는 것이 좋습니다.
Example of the using it you can find in this post: How to filter data in dataview
Hi we can use ToLower Method sometimes it is not filter.
EmployeeId = Session["EmployeeID"].ToString();
var rows = dtCrewList.AsEnumerable().Where
(row => row.Field<string>("EmployeeId").ToLower()== EmployeeId.ToLower());
if (rows.Any())
{
tblFiltered = rows.CopyToDataTable<DataRow>();
}
Sometimes you actually want to return a DataTable
than a DataView
. So a DataView
was not good in my case and I guess few others would want that too. Here is what I used to do
myDataTable.select("myquery").CopyToDataTable()
This will filter myDataTable
which is a DataTable and return a new DataTable
Hope someone will find that is useful
참고URL : https://stackoverflow.com/questions/13012585/how-i-can-filter-a-datatable
'Development Tip' 카테고리의 다른 글
새 창을 열고 jQuery를 사용하여 html을 삽입하는 방법은 무엇입니까? (0) | 2020.11.12 |
---|---|
프로그래밍 방식으로 NestedScrollView의 맨 위로 스크롤 (0) | 2020.11.12 |
사용자가 Swift로 이미지를 선택하도록 허용하는 방법은 무엇입니까? (0) | 2020.11.12 |
파일이 배치 스크립트의 디렉토리인지 테스트하는 방법은 무엇입니까? (0) | 2020.11.12 |
Python에서 파일 내용을 읽고 쓰는 가장 쉬운 방법 (0) | 2020.11.12 |