SqlDataSource.Select(DataSourceSelectArguments) Метод

Определение

Извлекает данные из основной базы данных, используя SQL-строку SelectCommand и параметры, содержащиеся в коллекции SelectParameters.Retrieves data from the underlying database by using the SelectCommand SQL string and any parameters that are in the SelectParameters collection.

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, который используется для операций запроса данных вне пределов извлечения базовых данных.A DataSourceSelectArguments object that is used to request operations on the data beyond basic data retrieval.

Возвраты

Список строк данных IEnumerable.An IEnumerable list of data rows.

Исключения

Объекту SqlDataSource не удается установить подключение к базовому источнику данных.The SqlDataSource object cannot establish a connection with the underlying data source.

Примеры

В следующих примерах показано, как программным Select способом вызвать метод и задать значения на основе результата запроса.The following examples show how to programmatically call the Select method and set values based on the result of the query. В следующем примере показан декларативный код для веб-элементов управления.The following example shows the declarative code for the Web controls.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] &gt; 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] &gt; 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 вызвать метод.The following example shows how to programmatically call the Select method. SqlDataSource Элемент управления возвращает целое число.The SqlDataSource control returns an integer. Значение целого числа используется для задания текста Label элемента управления и для определения, следует ли HyperLink отображать элемент управления.The value of the integer is used to set the text of a Label control and to determine whether to display a HyperLink control.

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

Комментарии

Метод автоматически вызывается PreRender на этапе жизненного цикла страницы. SelectThe Select method is automatically called during the PreRender phase of the page life cycle. Он вызывается элементами управления с привязкой к данным, которые были присоединены к SqlDataSource элементу управления через их DataSourceID свойство.It is called by data-bound controls that have been attached to a SqlDataSource control through their DataSourceID property.

Метод возвращает объект, если DataSourceMode свойству задано DataSet значение. DataView SelectThe Select method returns a DataView object if the DataSourceMode property is set to the DataSet value. Метод возвращает объект, если DataSourceMode свойству задано DataReader значение. IDataReader SelectThe Select method returns a IDataReader object if the DataSourceMode property is set to the DataReader value. Завершив IDataReader чтение данных, закройте объект.Close the IDataReader object when you have finished reading the data.

Перед выполнением OnSelectingоперациивызывается метод для вызова Selecting события. SelectBefore the Select operation is performed, the OnSelecting method is called to raise the Selecting event. Это событие можно обработать для проверки значений параметров и выполнения любой обработки перед Select операцией.You can handle this event to examine the values of the parameters and to perform any processing before the Select operation.

После завершения Select Selected операции вызывается метод для вызова события. OnSelectedAfter the Select operation completes, the OnSelected method is called to raise the Selected event. Это событие можно обработать для проверки любых возвращаемых значений и кодов ошибок, а также для выполнения любой последующей обработки.You can handle this event to examine any return values and error codes and to perform any post-processing.

Если свойство имеет SqlDataSourceMode.DataSet значение и включено SqlDataSource кэширование, объект получает данные из кэша Select и сохраняет их в кэше во время операции. DataSourceModeIf the DataSourceMode property is set to SqlDataSourceMode.DataSet and caching is enabled, the SqlDataSource object retrieves data from and saves data to the cache during the Select operation. Кэш создается, удаляется или обновляется в зависимости от поведения кэширования, заданного сочетанием CacheDuration свойств и. CacheExpirationPolicyThe cache is created, discarded, or refreshed based on the caching behavior that is specified by the combination of the CacheDuration and CacheExpirationPolicy properties.

Важно!

При использовании олицетворения клиента при проверке подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Если другой пользователь запрашивает одни и те же данные, данные извлекаются из кэша.If another user requests the same data, the data is retrieved from the cache. Данные не извлекаются путем совершения другого обращения к базе данных для проверки доступа пользователя к данным.The data is not retrieved by making another call to the database to verify the user's access to the data. Если предполагается, что к данным будет обращаться несколько пользователей и требуется, чтобы каждый из них проверялся конфигурациями безопасности базы данных, не используйте кэширование.If you expect more than one user to access the data, and you want each retrieval of data to be verified by the security configurations for the database, do not use caching.

Если свойство имеет SqlDataSourceMode.DataSet значение и FilterExpression указано свойство, критерий фильтра вычисляется с любыми предоставленными FilterParameters свойствами, а результирующий фильтр применяется к списку данных во время DataSourceMode Selectоперация.If the DataSourceMode property is set to SqlDataSourceMode.DataSet and a FilterExpression property has been specified, the filter expression is evaluated with any supplied FilterParameters properties and the resulting filter is applied to the list of data during the Select operation.

Метод делегирует Select методу SqlDataSourceView объекта, связанного с SqlDataSource элементом управления. SelectThe Select method delegates to the Select method of the SqlDataSourceView object that is associated with the SqlDataSource control. Чтобы выполнить операцию извлечения SqlDataSourceView данных, DbCommand объект строит на основе SelectCommand текста и всех связанных с ним SelectParameters значений, а затем выполняет его DbCommand для базовой базы данных.To perform a data retrieval operation, the SqlDataSourceView builds a DbCommand object by using the SelectCommand text and any associated SelectParameters values, and then executes the DbCommand against the underlying database.

Важно!

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности.Values are inserted into parameters without validation, which is a potential security threat. Filtering Используйте событие для проверки значений параметров перед выполнением запроса.Use the Filtering event to validate parameter values before executing the query. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.

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

Дополнительно