programing

데이터 테이블을 필터링하려면 어떻게 해야 합니까?

testmans 2023. 6. 14. 21:43
반응형

데이터 테이블을 필터링하려면 어떻게 해야 합니까?

사용자 정보가 포함된 데이터 테이블을 사용하며 이 데이터 테이블에서 사용자 또는 사용자 목록을 검색합니다.해봤는데 안 되네요 :(

내 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 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.DataSetExtensionsdll(방법).

사용:

.CopyToDataTable()

예:

string _sqlWhere = "Nachname = 'test'";
string _sqlOrder = "Nachname DESC";

DataTable _newDataTable = yurDateTable.Select(_sqlWhere, _sqlOrder).CopyToDataTable();

때때로 당신은 실제로 a를 반환하고 싶어합니다.DataTablea보다DataView.비상대기상태DataView제 경우에는 좋지 않았고 다른 사람들도 그것을 원할 것이라고 생각합니다.여기 제가 하던 일이 있습니다.

myDataTable.select("myquery").CopyToDataTable()

필터링됩니다.myDataTable데이터 테이블이며 새 테이블을 반환합니다.DataTable

누군가가 그것이 유용하다는 것을 알기를 바랍니다.

VB.NET에서 일하는 모든 사람들을 위한 (만약의 경우)

Dim dv As DataView = yourDatatable.DefaultView

dv.RowFilter ="query" ' ex: "parentid = 0"

이 작업에는 데이터 보기를 사용하는 것이 좋습니다.

이 게시물에서 확인할 수 있는 사용 예:데이터 보기에서 데이터 필터링 방법

안녕하세요 우리는 ToLower 메서드를 사용할 수 있습니다. 때때로 그것은 필터가 아닙니다.

EmployeeId = Session["EmployeeID"].ToString();
var rows = dtCrewList.AsEnumerable().Where
   (row => row.Field<string>("EmployeeId").ToLower()== EmployeeId.ToLower());

   if (rows.Any())
   {
        tblFiltered = rows.CopyToDataTable<DataRow>();
   }

언급URL : https://stackoverflow.com/questions/13012585/how-i-can-filter-a-datatable

반응형