Ошибка сервера из-за проблемы с подкачкой - PullRequest
0 голосов
/ 26 ноября 2009

Мне кажется, я разобрался с моим событием GridView1_PageIndexChanged и решил, что оно должно работать

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.DataSourceID = "lqPackWeights";
    GridView1.PageIndex = e.NewPageIndex;
}

Однако, когда я сейчас пытаюсь получить доступ к странице 2 из x, я получаю следующее:

Ошибка сервера в приложении / project. Этот провайдер поддерживает Skip () только для упорядоченных запросов, возвращающих сущности или проекции, которые содержат все столбцы идентификаторов, где запрос является запросом с одной таблицей (без объединения) или представляет собой Distinct, Except, Intersect или Union (не Concat) операция.

Я немного смущен этим, я не использую пропуск, насколько я вижу, если я не ослепну?

В настоящее время я использую SQL2000, эта проблема напрямую связана с этим экземпляром SQL?

Ответы [ 3 ]

0 голосов
/ 26 ноября 2009

Элемент управления использует Пропустить, чтобы перейти к записям для конкретной страницы, которую он должен отображать.

В SQL Server порядок запросов по умолчанию отсутствует (если это не прямая таблица с кластеризованным индексом), поэтому необходимо указать порядок в запросе для источника данных. Результат запроса должен иметь определенный порядок; не имеет смысла пролистывать результаты, если упорядочение меняется от страницы к странице, так что вы получаете более или менее случайный выбор записей из результата для каждой страницы.

0 голосов
/ 26 ноября 2009

В настоящее время мой запрос linq упорядочен ... Я думаю, что это не путь вперед или я вас неправильно понимаю?

закрытый объект GetMaterialData (строка MemberKey, строка MaterialType, строка MaterialLevel, int Count) { ORWeightsDataClassesDataContext db = newORWeightsDataClassesDataContext (); var query = db.tblOnlineReportingCOMPLETEWeights .Where (x => x.MaterialLevel == MaterialLevel && x.MaterialText == MaterialType && x.MemberId == MemberKey) .OrderByDescending (x => x.ProductPercentage) .Take (Count); обратный запрос; }

0 голосов
/ 26 ноября 2009

Вы используете LINQ to SQL? Эта проблема кажется уникальной для SQL Server 2000. См. Эти статьи MSDN по Устранению неполадок (LINQ to SQL) и Стандартный перевод оператора запросов (LINQ to SQL) для получения дополнительной информации.

EDIT

Подобный вопрос задавался ранее, см .: LINQ, Skip, OrderBy и SQL Server 2000

...