如何查询强类型数据表

发布于 2024-07-19 03:41:33 字数 550 浏览 10 评论 0原文

我有一个新闻门户。

对于此门户,我有一个带有“新闻”表和以下列的数据库 (NewsID、CategoryID、NewsTitle、NewsText、DateAdded、ImagePath、TotalRead、NewsType、isActive)

我使用数据集文件 (.xsd),对于这个文件,我有一个查询将最近 3 天的新闻返回到我的自定义类中编码,名为 HHNews。

HHNews 类有一个函数,它返回一个强类型数据表,其中包括我上面提到的查询结果。

主页有不同的新闻部分。这些是: - 头条新闻(5 条) - 小标题(4 项) - 每个新闻类别的最后 5 条新闻...(类别如下:体育、当地新闻、经济,

对于主页,我检索从类返回的数据表。现在我想查询该数据表并构建我上面提到的部分..例如,

如果我的数据表称为“dt”,那么有没有一种类似sql的方法来查询这个dt,例如“select TOP(5) NewsID, NewsTitle, NewsText from dt where NewsType = 0”-- 0 代表标题?

I have a news portal.

For this portal I have a database with a "News" table and with the following columns
(NewsID, CategoryID, NewsTitle, NewsText, DateAdded, ImagePath, TotalRead, NewsType, isActive)

I use dataset files (.xsd) and for this one, I have a query that returns the last 3 days' news into a custom class that I coded, named HHNews.

HHNews Class has a function that returns a strongly-typed datatable that includes the results of the query I mention above.

The home page has different sections for news.. these are;
- Headlines (5 items)
- Sub-headings (4 items)
- Last 5 news items for each of the news categories...( categories are like; sports, local news, economics,

For the home page, I retrieve the datatable returned from the class. Now I want to query this datatable and build the sections I mention above.. e.g.

if my datatable is called "dt", then is there a way to sql-like query this dt such as "select TOP(5) NewsID, NewsTitle, NewsText from dt where NewsType = 0" -- 0 representing the headline ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

哭了丶谁疼 2024-07-26 03:41:33

绝对地。 您可以像 Dave Cluderay 提到的那样使用 LINQ。 例如,要检索标题,您可以运行:

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

Absolutely. You can use LINQ as Dave Cluderay mentioned. To retrieve your headlines, for example, you could run:

var myDataTable = dt.AsEnumerable();
var headlines = myDataTable.Where(t => t.NewsID == 0).Take(5);
孤千羽 2024-07-26 03:41:33

如果您使用的是 .NET 3.5,则可以使用 LINQ to DataSet

You can use LINQ to DataSet if you're in .NET 3.5.

迷路的信 2024-07-26 03:41:33

如果您不是使用 .NET 3.5,则可以基于 DataTable 对象创建 DataView,然后在 DataView 上设置 RowFilter 属性。 例如:

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

然后您可以仅捕获 DataView 中的前 5 行。

If you aren't in .NET 3.5, you can create a DataView based on the DataTable object and then set the RowFilter property on the DataView. For example:

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

You can then catch only the first 5 rows in your DataView.

原来分手还会想你 2024-07-26 03:41:33

您可以使用默认视图来过滤数据表,如下所示:

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

不知道如何才能进入前 5 名!?

You can use the default view to filter the datatable like so:

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

Not sure how you would get the top 5!?

大海や 2024-07-26 03:41:33

如果您不是使用 3.5,则可以使用简单的 for 循环在对表进行排序后获取前 5 行。

If you're not in 3.5 you could use a simple for loop to get the top 5 rows after sorting the table.

ゞ花落谁相伴 2024-07-26 03:41:33

Datatable上有一个Select方法,不认为有办法限制返回的数量。 我喜欢 LINQ 方式,但只是一种替代方法......但限制可能会导致这种情况发生。

dt.Select("NewsType = 0");

There is a Select method on the Datatable, dont think there is a way to limit the amount returned. I like the LINQ way, but just an alternative....but the limit might count this out.

dt.Select("NewsType = 0");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文