Frage

Ich habe ein Nachrichtenportal.

Für dieses Portal habe ich eine Datenbank mit einem „News“ Tisch und mit den folgenden Spalten (NewSID, CategoryID, NewsTitle, Newstext, DateAdded, ImagePath, TotalRead, NewsType, isActive)

Ich verwende Dataset-Dateien (XSD) und für diesen einen, ich habe eine Abfrage, die die letzten 3 Tage Nachrichten in einer benutzerdefinierten Klasse zurückgibt, die ich codiert, mit dem Namen HHNews.

HHNews Klasse verfügt über eine Funktion, die eine stark typisierte Datatable zurückgibt, die die Ergebnisse der Abfrage, die ich oben erwähnt enthält.

Die Startseite hat verschiedene Abschnitte für Nachrichten .. diese sind; - Schlagzeilen (5 Beiträge) - Unterrubriken (4 Beiträge) - Die letzten 5 Nachrichten für jede der Nachrichten Kategorien ... (Kategorien sind wie, Sport, lokale Nachrichten, Wirtschaft,

Für die Homepage abrufen ich die Datentabelle aus der Klasse zurück. Jetzt möchte ich diese Datentabelle abzufragen und bauen, um die Abschnitte ich oben erwähnt habe .. z.

, wenn meine Datentabelle ist "dt" genannt wird, dann ist es eine Möglichkeit, SQL-ähnliche Abfrage dt dies wie "wählen TOP (5) NewSID, NewsTitle, Newstext aus dt wobei NewsType = 0" - 0 die die Überschrift?

War es hilfreich?

Lösung

Auf jeden Fall. Sie können verwenden LINQ als Dave Cluderay erwähnt. Zum Abrufen Ihrer Schlagzeilen, zum Beispiel, könnten Sie laufen:

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

Andere Tipps

Sie können mit LINQ to DataSet wenn Sie in .NET 3.5.

Wenn Sie nicht in .NET 3.5 sind, können Sie eine Dataview auf dem Datatable-Objekt erstellen basiert und dann die RowFilter Eigenschaft auf dem Dataview. Zum Beispiel:

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

Sie können dann nur die ersten 5 Zeilen in der Dataview fangen.

Sie können die Standardansicht verwenden, um die Datentabelle wie so zu filtern:

dt.DefaultView.RowFilter = "NewsType = 0";

Nicht sicher, wie Sie sich die Top-5 erhalten!?

Wenn Sie nicht in 3.5 Sie eine einfache verwenden könnte für Schleife, um die Top-5-Zeilen zu erhalten, nachdem die Tabelle zu sortieren.

Es gibt eine Select-Methode auf der Datentabelle, glauben nicht, dass es eine Möglichkeit ist, die Menge zurück zu begrenzen. Ich mag die Art und Weise LINQ, aber nur eine Alternative .... aber die Grenze könnte diese aus zählen.

dt.Select("NewsType = 0");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top