다음을 통해 공유


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 정수(integer)를 반환합니다. 정수 값은 컨트롤의 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 됩니다. 속성을 통해 DataSourceID 컨트롤에 연결된 데이터 바인딩된 컨트롤에 SqlDataSource 의해 호출됩니다.

속성이 Select 값으로 DataView 설정된 경우 DataSourceMode 메서드는 개체를 반환합니다 DataSet . 속성이 Select 값으로 IDataReader 설정된 경우 DataSourceMode 메서드는 개체를 반환합니다 DataReader . 데이터 읽기를 IDataReader 마쳤으면 개체를 닫습니다.

Select 작업을 수행하기 OnSelecting 전에 이벤트를 발생 하려면 메서드를 호출 합니다Selecting. 이 이벤트를 처리하여 매개 변수 값을 검사하고 작업 전에 Select 모든 처리를 수행할 수 있습니다.

Select 작업이 완료되면 OnSelected 이벤트를 발생하도록 메서드가 Selected 호출됩니다. 이 이벤트를 처리하여 반환 값 및 오류 코드를 검사하고 사후 처리를 수행할 수 있습니다.

DataSourceMode 속성을 설정 SqlDataSourceMode.DataSet 하 고 캐싱을 사용 하는 SqlDataSource 경우 개체에서 데이터를 검색 하 고 작업 하는 동안 Select 캐시에 데이터를 저장 합니다. 캐시는 및 속성의 CacheDurationCacheExpirationPolicy 조합에 의해 지정된 캐싱 동작에 따라 생성, 삭제 또는 새로 고쳐집니다.

중요합니다

Microsoft Windows 인증에서 클라이언트 가장을 사용하는 경우 첫 번째 사용자가 데이터에 액세스할 때 데이터가 캐시됩니다. 다른 사용자가 동일한 데이터를 요청하면 캐시에서 데이터가 검색됩니다. 데이터에 대한 사용자의 액세스를 확인하기 위해 데이터베이스를 다른 호출하여 데이터를 검색하지 않습니다. 둘 이상의 사용자가 데이터에 액세스해야 하고 데이터베이스의 보안 구성에서 각 데이터 검색을 확인하려는 경우 캐싱을 사용하지 마세요.

속성이 DataSourceMode 설정 SqlDataSourceMode.DataSet 되고 FilterExpression 속성이 지정된 경우 필터 식은 제공된 FilterParameters 속성으로 평가되고 결과 필터는 작업 중에 Select 데이터 목록에 적용됩니다.

메서드는 Select 컨트롤과 Select 연결된 개체의 SqlDataSourceView 메서드에 대리합니다 SqlDataSource . 데이터 검색 작업을 SqlDataSourceView 수행하려면 텍스트 및 연결된 값을 사용하여 SelectCommand 개체를 빌드 DbCommandSelectParameters 다음 기본 데이터베이스에 대해 실행합니다DbCommand.

중요합니다

값은 유효성 검사 없이 매개 변수에 삽입되며 이는 잠재적인 보안 위협입니다. 쿼리를 Filtering 실행하기 전에 이벤트를 사용하여 매개 변수 값의 유효성을 검사합니다. 자세한 내용은 스크립트 악용 개요를 참조하세요.

적용 대상

추가 정보