방법: 행을 반환하는 SQL 문 만들기 및 실행
업데이트: 2007년 11월
행을 반환하는 SQL 문을 실행하기 위해 SQL 문을 실행하도록 구성되어 있는 TableAdapter 쿼리(예: CustomersTableAdapter.Fill(CustomersDataTable))를 실행할 수 있습니다.
응용 프로그램에서 TableAdapter를 사용하지 않으면 명령 개체에서 ExecuteReader 메서드를 호출하여 CommandType 속성을 Text로 설정합니다. "명령 개체"는 응용 프로그램에서 사용하고 있는 .NET Framework Data Provider의 특정 명령을 참조합니다. 예를 들어, 응용 프로그램에서 .NET Framework Data Provider for SQL Server를 사용하고 있으면 명령 개체는 SqlCommand가 됩니다.
다음 예제에서는 TableAdapter 또는 명령 개체를 사용하여 데이터베이스에서 행을 반환하는 SQL 문을 실행하는 방법을 보여 줍니다. 명령과 TableAdapter를 사용하여 쿼리하는 방법에 대한 자세한 내용은 데이터 집합 채우기 및 데이터 쿼리 개요를 참조하십시오.
TableAdapter를 사용하여 행을 반환하는 SQL 문 실행
이 예제에서는 TableAdapter 쿼리 구성 마법사를 사용하여 TableAdapter 쿼리를 만드는 방법을 보여주고 TableAdapter의 인스턴스를 선언하고 쿼리를 실행하는 방법에 대해 설명합니다.
참고: |
---|
실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오. |
TableAdapter를 사용하여 행을 반환하는 SQL 문을 만들려면
데이터 집합 디자이너에서 데이터 집합을 엽니다. 자세한 내용은 방법: 데이터 집합 디자이너에서 데이터 집합 열기를 참조하십시오.
TableAdapter가 없으면 새로 만듭니다. TableAdapter를 만드는 방법에 대한 자세한 내용은 방법: TableAdapter 만들기를 참조하십시오.
SQL 문을 사용하여 행을 반환하는 쿼리가 이미 TableAdapter에 있는 경우에는 다음 절차인 "TableAdapter의 인스턴스를 선언하고 쿼리를 실행하려면"으로 이동하십시오. 그렇지 않으면 4단계로 계속 진행하여 행을 반환하는 새 쿼리를 만듭니다.
원하는 TableAdapter를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴를 사용하여 쿼리를 추가합니다.
TableAdapter 쿼리 구성 마법사가 열립니다.
SQL 문 사용의 기본값을 그대로 두고 다음을 클릭합니다.
행을 반환하는 SELECT의 기본값을 그대로 두고 다음을 클릭합니다.
SQL 문을 입력하거나 쿼리 작성기를 사용하여 만들고 다음을 클릭합니다.
쿼리의 이름을 제공합니다.
마법사를 완료합니다. 쿼리가 TableAdapter에 추가됩니다.
프로젝트를 빌드합니다.
TableAdapter의 인스턴스를 선언하고 쿼리를 실행하려면
실행할 쿼리가 포함된 TableAdapter의 인스턴스를 선언합니다.
디자인 타임 도구를 사용하여 인스턴스를 만들려면 도구 상자에서 원하는 TableAdapter를 끕니다. 프로젝트의 구성 요소는 이제 도구 상자에서 프로젝트 이름과 일치하는 제목 아래에 나타납니다. TableAdapter가 도구 상자에 나타나지 않으면 프로젝트를 빌드해야 할 수도 있습니다.
-또는-
코드에서 인스턴스를 만들려면 다음 코드를 TableAdapter와 DataSet의 이름으로 바꿉니다.
Dim tableAdapter As New DataSetTableAdapters.TableAdapter
참고: TableAdapter는 연결된 데이터 집합 클래스 안에 없습니다. 각 데이터 집합은 자체 네임스페이스에 해당 TableAdapter 컬렉션을 갖습니다. 예를 들어, SalesDataSet이라는 데이터 집합이 있으면 해당 TableAdapter가 포함된 SalesDataSetTableAdapters 네임스페이스가 있습니다.
코드에서 다른 메서드를 호출하는 것처럼 쿼리를 호출합니다. 쿼리는 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");
명령 개체를 사용하여 행을 반환하는 SQL 문 실행
다음 예제에서는 명령을 만드는 방법과 행을 반환하는 SQL 문을 실행하는 방법을 보여 줍니다. 명령의 매개 변수 값을 설정하고 가져오는 방법에 대한 자세한 내용은 방법: 명령 개체의 매개 변수 설정 및 가져오기를 참조하십시오.
이 예제에서는 SqlCommand 개체를 사용하며 다음이 필요합니다.
System, System.Data, System.Data.SqlClient 및 System.Xml 네임스페이스에 대한 참조
이름이 sqlConnection1인 데이터 연결
sqlConnection1이 연결된 데이터 소스의 Customers라는 테이블 (그렇지 않으면, 데이터 소스에 대한 유효한 SQL 문이 필요)
명령 개체를 사용하여 프로그래밍 방식으로 행을 반환하는 SQL 문을 실행하려면
코드를 실행할 메서드에 다음 코드를 추가합니다. ExecuteReader와 같이 명령의 ExecuteReader 메서드를 호출하여 행을 반환합니다. 데이터는 SqlDataReader에 반환됩니다. SqlDataReader의 데이터에 액세스하는 방법에 대해서는 DataReader를 사용하여 데이터 검색(ADO.NET)을 참조하십시오.
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim reader As SqlDataReader cmd.CommandText = "SELECT * FROM Customers" cmd.CommandType = CommandType.Text 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 = "SELECT * FROM Customers"; cmd.CommandType = CommandType.Text; cmd.Connection = sqlConnection1; sqlConnection1.Open(); reader = cmd.ExecuteReader(); // Data is accessible through the DataReader object here. sqlConnection1.Close();
보안
응용 프로그램에는 데이터베이스에 액세스하고 SQL 문을 실행할 수 있는 권한이 필요합니다.