SqlDataSource.Select(DataSourceSelectArguments) Метод

Определение

Извлекает данные из основной базы данных, используя SQL-строку SelectCommand и параметры, содержащиеся в коллекции SelectParameters.

public:
 System::Collections::IEnumerable ^ Select(System::Web::UI::DataSourceSelectArguments ^ arguments);
public System.Collections.IEnumerable Select (System.Web.UI.DataSourceSelectArguments arguments);
member this.Select : System.Web.UI.DataSourceSelectArguments -> System.Collections.IEnumerable
Public Function Select (arguments As DataSourceSelectArguments) As IEnumerable

Параметры

arguments
DataSourceSelectArguments

Объект DataSourceSelectArguments, который используется для операций запроса данных вне пределов извлечения базовых данных.

Возвращаемое значение

Список строк данных IEnumerable.

Исключения

Объекту SqlDataSource не удается установить подключение к базовому источнику данных.

Примеры

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

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
    ID="Button1" 
    Text="Check Reorder Status" 
    runat="server" 
    onclick="Button1_Click" />
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
   ID="Button1" 
   Text="Check Reorder Status" 
   runat="server" 
   onclick="Button1_Click" />

В следующем примере показано, как вызвать метод программным способом Select . Элемент SqlDataSource управления возвращает целое число. Значение целого числа используется для задания текста Label элемента управления и определения того, следует ли отображать HyperLink элемент управления.

protected void CheckReorderStatus()
{
    DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    int reorderedProducts = (int)dv.Table.Rows[0][0];
    if (reorderedProducts > 0)
    {
        Label1.Text = "Number of products on reorder: " + reorderedProducts;
    }
    else
    {
        Label1.Text = "No products on reorder.";
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    CheckReorderStatus();
}
Protected Sub CheckReorderStatus()
    Dim dv As DataView
    Dim reorderedProducts As Integer

    dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
    reorderedProducts = CType(dv.Table.Rows(0)(0), Integer)
    If (reorderedProducts > 0) Then
        Label1.Text = "Number of products on reorder: " & reorderedProducts
    Else
        Label1.Text = "No products on reorder."
    End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    CheckReorderStatus()
End Sub

Комментарии

Метод Select автоматически вызывается на PreRender этапе жизненного цикла страницы. Он вызывается элементами управления с привязкой к данным, которые были присоединены к элементу SqlDataSource управления через их DataSourceID свойство.

Метод Select возвращает объект , DataView если свойству DataSourceMode присвоено DataSet значение . Метод Select возвращает объект , IDataReader если свойству DataSourceMode присвоено DataReader значение . Закройте объект, IDataReader когда завершите чтение данных.

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

Select После завершения операции вызывается метод для OnSelected вызова Selected события . Это событие можно обработать для проверки возвращаемых значений и кодов ошибок, а также для выполнения постобработки.

DataSourceMode Если свойство имеет значение SqlDataSourceMode.DataSet и кэширование включено, SqlDataSource объект извлекает данные из и сохраняет их в кэше во время Select операции. Кэш создается, удаляется или обновляется в зависимости от поведения кэширования, заданного CacheDuration сочетанием свойств и CacheExpirationPolicy .

Важно!

При использовании олицетворения клиента в рамках проверки подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным. Если другой пользователь запрашивает те же данные, данные извлекаются из кэша. Данные не извлекаются путем другого вызова базы данных для проверки доступа пользователя к данным. Если вы ожидаете, что несколько пользователей будут получать доступ к данным и хотите, чтобы каждое извлечение данных проверялось конфигурациями безопасности базы данных, не используйте кэширование.

Если свойству DataSourceMode присвоено значение SqlDataSourceMode.DataSet и FilterExpression свойство задано, выражение фильтра вычисляется с любыми предоставленными FilterParameters свойствами, а полученный фильтр применяется к списку данных во время Select операции.

Метод Select делегирует Select метод объекта , связанного SqlDataSourceView с элементом SqlDataSource управления . Чтобы выполнить операцию извлечения данных, SqlDataSourceView компонент создает DbCommand объект с использованием SelectCommand текста и всех связанных SelectParameters значений, а затем выполняет DbCommand для базовой базы данных.

Важно!

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности. Используйте событие для Filtering проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

Применяется к

См. также раздел