문제

뉴스 포털이 있습니다.

이 포털에는 "뉴스"테이블과 다음 열이있는 데이터베이스가 있습니다 (NewsId, CategoryId, Newstitle, Newstext, Dateadded, ImagePath, Total Read, Newstype, Isactive).

데이터 세트 파일 (.xsd)을 사용하고 있으며이를 위해서는 지난 3 일 뉴스를 Hhnews라는 이름으로 코딩 한 사용자 정의 클래스로 반환하는 쿼리가 있습니다.

Hhnews 클래스에는 위에서 언급 한 쿼리 결과를 포함하는 강력한 데이터 가능 기능을 반환하는 기능이 있습니다.

홈페이지에는 뉴스의 다른 섹션이 있습니다. - 헤드 라인 (5 개 항목) - 하위 헤드 (4 개 항목) - 각 뉴스 카테고리에 대한 마지막 5 개의 뉴스 항목 ... (카테고리는 스포츠, 지역 뉴스, 경제학,

홈페이지의 경우 클래스에서 반환 된 데이터 가능을 검색합니다. 이제이 데이터 가능을 쿼리하고 위에서 언급 한 섹션을 작성하고 싶습니다.

내 데이터 테이블이 "DT"라고 불리면 "Select Top (5) NewsID, Newstitle, NewStext의 NewStext where where NewStype = 0"과 같은 SQL 유사 쿼리의 방법이 있습니까? - 헤드 라인을 나타내는 0?

도움이 되었습니까?

해결책

전적으로. 당신은 할 수 있습니다 LINQ를 사용하십시오 Dave Cluderay가 언급했듯이. 예를 들어 헤드 라인을 검색하려면 다음을 실행할 수 있습니다.

var myDataTable = dt.AsEnumerable();
var headlines = myDataTable.Where(t => t.NewsID == 0).Take(5);

다른 팁

당신이 사용할 수있는 LINQ에서 데이터 세트 .NET 3.5에있는 경우.

.NET 3.5에 있지 않은 경우 DataTable 객체를 기반으로 DataView를 작성한 다음 Dataview에서 RowFilter 속성을 설정할 수 있습니다. 예를 들어:

DataView myDV = new DataView(dt);
myDV.RowFilter = "NewsType = 0";

그런 다음 데이터 뷰에서 처음 5 행만 잡을 수 있습니다.

기본보기를 사용하여 데이터와 같은 데이터를 필터링 할 수 있습니다.

dt.defaultView.rowFilter = "NewStype = 0";

어떻게 5 위를 얻을 수 있는지 잘 모르겠습니다!?

3.5에 있지 않은 경우 루프의 간단한 것을 사용하여 테이블을 정렬 한 후 상위 5 행을 얻을 수 있습니다.

데이터 테이블에는 선택된 메소드가 있으며 반환 된 금액을 제한하는 방법이 있다고 생각하지 마십시오. 나는 LINQ 방식을 좋아하지만 대안 일뿐입니다 ....하지만 한계는 이것을 계산할 수 있습니다.

dt.Select("NewsType = 0");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top