다음을 통해 공유


방법: 행을 반환하는 저장 프로시저 실행

업데이트: 2007년 11월

행을 반환하는 저장 프로시저를 실행하려면 저장 프로시저를 실행하도록 구성된 TableAdapter 쿼리(예: CustomersTableAdapter.Fill(CustomersDataTable))를 실행하면 됩니다.

응용 프로그램에서 TableAdapter를 사용하지 않으면 명령 개체에서 ExecuteReader 메서드를 호출하여 CommandType 속성을 StoredProcedure로 설정합니다. "Command 개체"는 응용 프로그램에서 사용하고 있는 .NET Framework Data Provider의 특정 명령을 가리킵니다. 예를 들어, 응용 프로그램에서 .NET Framework Data Provider for SQL Server를 사용하고 있으면 명령 개체는 SqlCommand가 됩니다.)

다음 예제에서는 TableAdapter 또는 명령 개체를 사용하여 데이터베이스에서 행을 반환하는 저장 프로시저를 실행하는 방법을 보여 줍니다. 명령과 TableAdapter를 사용하여 쿼리하는 방법에 대한 자세한 내용은 데이터 집합 채우기 및 데이터 쿼리 개요를 참조하십시오.

참고:

실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

TableAdapter를 사용하여 행을 반환하는 저장 프로시저 실행

이 예제에서는 TableAdapter 쿼리 구성 마법사를 사용하여 TableAdapter 쿼리를 만드는 방법을 보여 주고 TableAdapter의 인스턴스를 선언하고 쿼리를 실행하는 방법에 대해 설명합니다.

TableAdapter를 사용하여 행을 반환하는 저장 프로시저를 만들려면

  1. 데이터 집합 디자이너에서 데이터 집합을 엽니다. 자세한 내용은 방법: 데이터 집합 디자이너에서 데이터 집합 열기를 참조하십시오.

  2. TableAdapter가 없으면 새로 만듭니다. 자세한 내용은 방법: TableAdapter 만들기를 참조하십시오.

  3. TableAdapter에 이미 행을 반환하는 저장 프로시저를 호출하는 쿼리가 있으면 다음의 "TableAdapter의 인스턴스를 선언하고 쿼리를 실행하려면" 단계로 건너뜁니다. 그렇지 않으면 4단계를 계속하여 행을 반환하는 저장 프로시저를 호출하는 쿼리를 새로 만듭니다.

  4. 원하는 TableAdapter를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴를 사용하여 쿼리를 추가합니다.

    TableAdapter 쿼리 구성 마법사가 열립니다.

  5. 다음을 클릭하고 기존 저장 프로시저 사용을 선택한 후 다음을 클릭합니다.

  6. 드롭다운 목록에서 저장 프로시저를 선택하고 다음을 클릭합니다.

  7. 표 형식 데이터의 기본값을 그대로 두고 다음을 클릭합니다.

  8. 만들 메서드의 이름을 각각 지정합니다(DataTable 채우기 및/또는 DataTable 반환 메서드).

  9. 마법사를 완료합니다. 쿼리가 TableAdapter에 추가됩니다.

  10. 프로젝트를 빌드합니다.

TableAdapter의 인스턴스를 선언하고 쿼리를 실행하려면

  1. 실행할 쿼리가 포함된 TableAdapter의 인스턴스를 선언합니다.

    • 디자인 타임 도구를 사용하여 인스턴스를 만들려면 도구 상자에서 원하는 TableAdapter를 끕니다. 프로젝트의 구성 요소는 이제 도구 상자에서 프로젝트 이름과 일치하는 제목 아래에 나타납니다. TableAdapter가 도구 상자에 나타나지 않으면 프로젝트를 빌드해야 할 수도 있습니다.

      -또는-

    • 코드에서 인스턴스를 만들려면 다음 코드를 TableAdapter와 DataSet의 이름으로 바꿉니다.

      Dim tableAdapter As New DataSetTableAdapters.TableAdapter

      참고:

      TableAdapter는 연결된 데이터 집합 클래스 안에 없습니다. 각 데이터 집합은 자체 네임스페이스에 해당 TableAdapter 컬렉션을 갖습니다. 예를 들어, SalesDataSet이라는 데이터 집합이 있으면 해당 TableAdapter가 포함된 SalesDataSetTableAdapters 네임스페이스가 있습니다.

  2. 코드에서 다른 메서드를 호출하는 것처럼 쿼리를 호출합니다. 쿼리는 TableAdapter의 메서드입니다. 다음 코드를 쿼리 및 TableAdapter의 이름으로 바꿉니다. 쿼리에 필요한 매개 변수도 전달해야 합니다. 쿼리에 매개 변수가 필요한지 여부 또는 어떤 매개 변수가 필요한지 확실히 모르면 IntelliSense를 검사하여 쿼리의 필요한 시그니처를 확인합니다. 쿼리에서 매개 변수를 사용하는지 여부에 따라 코드가 다음 예제 중 하나와 비슷할 수 있습니다.

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

    TableAdapter.Query(DataTable, Parameters)

    TableAdapter의 인스턴스를 선언하고 쿼리를 실행하는 전체 코드는 다음과 같습니다.

    Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
    tableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    
    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    

명령 개체를 사용하여 행을 반환하는 저장 프로시저 실행

다음 예제에서는 명령을 만들고, 행을 반환하는 저장 프로시저를 실행하는 방법을 보여 줍니다. 명령의 매개 변수 값을 설정하고 가져오는 방법에 대한 자세한 내용은 방법: 명령 개체의 매개 변수 설정 및 가져오기를 참조하십시오.

이 예제에서는 SqlCommand 개체를 사용하며 다음이 필요합니다.

  • System, System.DataSystem.Xml 네임스페이스에 대한 참조

  • SqlConnection1이라는 데이터 연결

  • SqlConnection1이 연결된 데이터 소스의 Customers라는 테이블 (그렇지 않으면, 데이터 소스에 대한 유효한 SQL 문이 필요)

명령 개체를 사용하여 프로그래밍 방식으로 행을 반환하는 저장 프로시저를 실행하려면

  • 코드를 실행할 메서드에 다음 코드를 추가합니다. 명령의 ExecuteReader 메서드를 호출하여 행을 반환합니다(예: ExecuteReader). 데이터는 DataReader에 반환됩니다. DataReader의 데이터에 액세스하는 방법에 대해서는 DataReader를 사용하여 데이터 검색(ADO.NET)을 참조하십시오.

    Dim sqlConnection1 As New SqlConnection("Your Connection String")
    Dim cmd As New SqlCommand
    Dim reader As SqlDataReader
    
    cmd.CommandText = "StoredProcedureName"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    
    reader = cmd.ExecuteReader()
    ' Data is accessible through the DataReader object here.
    
    sqlConnection1.Close()
    
    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader reader;
    
    cmd.CommandText = "StoredProcedureName";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    reader = cmd.ExecuteReader();
    // Data is accessible through the DataReader object here.
    
    sqlConnection1.Close();
    

보안

응용 프로그램에는 데이터베이스에 액세스하고 저장 프로시저를 실행할 수 있는 권한이 필요합니다.

참고 항목

작업

방법: TableAdapter 쿼리 만들기

방법: 데이터 집합을 데이터로 채우기

방법: 명령 개체의 매개 변수 설정 및 가져오기

개념

데이터 집합 채우기 및 데이터 쿼리 개요

참조

SqlCommand.ExecuteReader

OleDbCommand.ExecuteReader

OdbcCommand.ExecuteReader

OracleCommand.ExecuteReader