【发布时间】:2013-04-24 07:29:46
【问题描述】:
我有一个应用程序(带有 C# 的 ASP.NET),我在其中从数据库(来自 Microsoft 索引服务的索引)中获取结果,然后在 asp:Repeater 中显示该结果。通常我会得到想要的结果,例如,Repeater 显示 1500 个结果中的 1500 个,但有时查询会找到 300 个结果,Repeater 只显示其中的 200 个。
这是我获取结果记录数的方式:
foreach (DataTable dt in queryResult.Tables)
{
foreach (DataRow row in dt.Rows)
{
rows++;
}
}
这就是我将数据绑定到中继器的方式:
if (queryResult.Tables.Count > 0)
{
Result.DataSource = queryResult;
Result.DataBind();
}
有没有人知道什么会导致这个问题?
【问题讨论】:
-
DataTable.Rows有一个属性Count,所以不需要枚举所有行来计算它。 -
@TimSchmelter 好的。谢谢你。但我仍然必须枚举表格,它并不能解释为什么中继器有时不会显示所有结果。
-
您的数据集是否包含多个表?那么你想如何计算行数呢?转发器显示什么,单个表/结果集的字段或多个表/结果集的字段?
-
@TimSchmelter 是的,DataSet 可以包含多个表。为了获得行数,我枚举了所有表并添加了不同表的所有行数。由于 DataSet 包含所有表的结果,Repeater 将所有表的结果显示在一个列表中。
标签: c# asp.net repeater indexing-service