SqlDataSource: параметры при выборе ()

#c# #sqldatasource

#c# #sqldatasource

Вопрос:

После прочтения https://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.sqldatasource.select(v=vs.110).aspx

Я немного смущен методом Select() SqlDataSource . Это легко объяснить на примере. Давайте рассмотрим этот тестовый код:

 //sql is a SqlDatasource, let's get out the question the initialization.
sql.SelectCommand= "select * from employees where iddepartment = @iddeparment";
sql.SelectParameters.Add("iddepartment ", DbType.Int, "1");
  

На данный момент мне нужно получить данные, поэтому я пытаюсь сделать что-то вроде:

 IEnumerable<object> myData = sql.Select();
  

Однако, согласно документации MSDN, Select для методов требуется 1 параметр типа DataSourceSelectArguments . Это меня смущает, почему я должен передавать некоторые «Параметры выбора» в качестве аргумента, если я уже установил их путем вызова SelectParameter.Add(...) ? Как я могу правильно вызвать эту функцию?

Ответ №1:

DataSourceSelectArguments — это не то, что вы думали. В вашем случае вы можете просто передать DataSourceSelectArguments.Empty .

Элементы управления с привязкой к данным используют класс DataSourceSelectArguments для запроса, чтобы элемент управления источником данных выполнял дополнительные операции, связанные с данными, над результирующим набором, такие как сортировка данных или возврат определенного подмножества данных. Эти операции, связанные с данными, перечисляются перечислением DataSourceCapabilities . В следующей таблице показано, как класс DataSourceSelectArguments поддерживает эти операции, связанные с данными.

Этот параметр может содержать информацию о применяемых фильтрах или столбце для упорядочения. Например, при работе с сортируемым представлением сетки сортировка столбца вызывает метод Select() и передает экземпляр DataSourceSelectArguments с его свойством SortExpression, установленным на имя столбца, по которому пользователь выбрал сортировку. Если вы не хотите, чтобы источник данных сортировался или фильтровался, вы передаете DataSourceSelectArguments .Пусто.