SqlDataSource.Select(DataSourceSelectArguments) SqlDataSource.Select(DataSourceSelectArguments) SqlDataSource.Select(DataSourceSelectArguments) SqlDataSource.Select(DataSourceSelectArguments) Method

定義

SelectCommand SQL 文字列、および 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 DataSourceSelectArguments 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. 次の例では、Web コントロールの宣言型コードを示します。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

注釈

Selectメソッドが中に自動的に呼び出されます、PreRenderページのライフ サイクルのフェーズ。The 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.

Selectメソッドを返します。 をDataViewオブジェクトの場合、DataSourceModeプロパティに設定されて、DataSet値。The Select method returns a DataView object if the DataSourceMode property is set to the DataSet value. Selectメソッドを返します。 をIDataReaderオブジェクトの場合、DataSourceModeプロパティに設定されて、DataReader値。The 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.

前に、Select操作を実行する、OnSelectingさせるメソッドが呼び出される、Selectingイベント。Before 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操作の完了、OnSelectedさせるメソッドが呼び出される、Selectedイベント。After 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.

場合、DataSourceModeプロパティに設定されてSqlDataSourceMode.DataSetキャッシュが有効になっていると、SqlDataSourceオブジェクトからデータを取得し、中にキャッシュにデータを保存、Select操作。If 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. キャッシュが作成、破棄、または更新の組み合わせで指定されているキャッシュの動作に基づいて、CacheDurationCacheExpirationPolicyプロパティ。The 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. 予定の場合、データにアクセスする 1 つ以上のユーザー、データベースのセキュリティ構成を検証するデータの取得されるたび、キャッシュを使用しません。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.

場合、DataSourceModeプロパティに設定されてSqlDataSourceMode.DataSetFilterExpressionプロパティが指定されている、指定されたいずれかのフィルター式が評価されるFilterParameters中に、プロパティとその結果のフィルターデータの一覧に適用されるは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にメソッドがデリゲート、Selectのメソッド、SqlDataSourceViewオブジェクトに関連付けられている、SqlDataSourceコントロール。The 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.

適用対象

こちらもご覧ください