2013-04-24 3 views
0

У меня есть приложение (ASP.NET с C#), в котором я получаю результаты из базы данных (индекс от службы индексирования Microsoft), которую я потом показываю в asp : Repeater. Часто я получаю желаемые результаты, например, Repeater показывает 1500 из 1500 результатов, но иногда запрос находит 300 результатов, а повторитель показывает только 200 из них.ASP.NET Repeater не всегда показывает все результаты

Это, как я получаю количество результирующих записей:

foreach (DataTable dt in queryResult.Tables) 
{ 

    foreach (DataRow row in dt.Rows) 
    { 
     rows++; 
    } 
} 

Это, как я привязать данные к Repeater:

if (queryResult.Tables.Count > 0) 
{ 
    Result.DataSource = queryResult; 
    Result.DataBind(); 
} 

Кто-нибудь есть какие-либо идеи, что может привести к этой проблеме ?

+1

['DataTable.Rows'] (http://msdn.microsoft.com/en-us/library/ms135388.aspx) имеет свойство' Count', поэтому нет необходимости перечислять все строки для его вычисления. –

+0

@TimSchmelter Ok. Спасибо. Но мне все же приходится перечислять таблицы, и это не объясняет, почему Repeater иногда не показывает всех результатов. – samoncode

+0

Имеет ли ваш DataSet несколько таблиц? Как вы хотите вычислить счетчик строк? Что показывает ретранслятор, поля одной таблицы/результатов или поля нескольких таблиц/результатов? –

ответ

0

Проблема решена. Это был не ретранслятор, а служба индексирования Microsoft, которая заполнила все пространство на жестком диске сервера, а затем не смогла вернуть правильные результаты. Я переместил индекс в раздел с большим пространством, и все работает отлично.

Смежные вопросы