다음을 통해 공유


SqlCommandBuilder 클래스

정의

연결된 SQL Server 데이터베이스와 DataSet 의 변경 내용을 조정하는 데 사용하는 단일 테이블 명령을 자동으로 생성합니다. 이 클래스는 상속될 수 없습니다.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
상속
SqlCommandBuilder

예제

다음 예제에서는 및 와 SqlConnection함께 SqlDataAdapter 를 사용하여 SqlCommand데이터 원본에서 행을 선택합니다. 이 예제에서는 연결 문자열, Transact-SQL SELECT 문인 쿼리 문자열 및 데이터베이스 테이블의 이름인 문자열을 전달합니다. 그런 다음, 이 예제에서는 를 SqlCommandBuilder만듭니다.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandBuilderCS
{
    class Program
    {
        static void Main()
        {
            string cnnst = "";
            string queryst = "";
            string tablen = "";
            DataSet ds = SelectSqlRows(cnnst, queryst, tablen);

        }

        public static DataSet SelectSqlRows(string connectionString,
            string queryString, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = new SqlCommand(queryString, connection);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

                connection.Open();

                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet, tableName);

                //code to modify data in DataSet here

                builder.GetUpdateCommand();

                //Without the SqlCommandBuilder this line would fail
                adapter.Update(dataSet, tableName);

                return dataSet;
            }
        }

설명

SqlDataAdapter 에 대한 변경 내용을 SQL Server 연결된 instance 조정하는 DataSet 데 필요한 Transact-SQL 문을 자동으로 생성하지 않습니다. 그러나 의 속성을 SqlDataAdapter설정하는 경우 단일 테이블 업데이트에 대한 Transact-SQL 문을 자동으로 생성하는 개체를 SelectCommand 만들 SqlCommandBuilder 수 있습니다. 그런 다음, 설정하지 않은 추가 Transact-SQL 문은 에 의해 SqlCommandBuilder생성됩니다.

SqlCommandBuilder 속성을 설정할 때마다 이벤트에 대한 RowUpdating 수신기로 자신을 등록합니다 DataAdapter . 한 번에 하나 SqlDataAdapter 또는 SqlCommandBuilder 개체를 서로 연결할 수 있습니다.

INSERT, UPDATE 또는 DELETE 문을 생성하기 위해 는 SqlCommandBuilder 속성을 사용하여 SelectCommand 필요한 메타데이터 집합을 자동으로 검색합니다. 첫 번째 업데이트 후와 같이 메타데이터가 검색된 후 를 변경하는 SelectCommand 경우 메서드를 RefreshSchema 호출하여 메타데이터를 업데이트해야 합니다.

SelectCommand는 또한 하나 이상의 기본 키 또는 고유한 열을 반환해야 합니다. 없는 경우 InvalidOperation 예외가 생성되고 명령이 생성되지 않습니다.

SqlCommandBuilder 에서 참조하는 ConnectionSelectCommand, CommandTimeoutTransaction 속성도 사용합니다. 사용자는 이러한 속성 중 하나 이상이 수정되거나 자체 속성이 SelectCommand 바뀐 경우 를 호출 RefreshSchema 해야 합니다. 그렇지 않으면 , UpdateCommandDeleteCommand 속성은 InsertCommand이전 값을 유지합니다.

SqlCommandBuilder 호출Dispose하는 경우 는 에서 SqlDataAdapter연결되지 않으며 생성된 명령은 더 이상 사용되지 않습니다.

생성자

SqlCommandBuilder()

SqlCommandBuilder 클래스의 새 인스턴스를 초기화합니다.

SqlCommandBuilder(SqlDataAdapter)

관련 SqlCommandBuilder 개체를 사용하여 SqlDataAdapter 클래스의 새 인스턴스를 초기화합니다.

속성

CatalogLocation

CatalogLocation 클래스의 인스턴스에 대한 SqlCommandBuilder을 설정하거나 가져옵니다.

CatalogSeparator

SqlCommandBuilder 클래스의 인스턴스에 대한 카탈로그 구분 기호로 사용되는 문자열을 설정하거나 가져옵니다.

DataAdapter

Transact-SQL 문을 자동으로 생성할 SqlDataAdapter 개체를 가져오거나 설정합니다.

QuotePrefix

이름에 공백 또는 예약된 토큰과 같은 문자가 포함된 SQL Server 데이터베이스 개체(예: 테이블 또는 열)를 지정할 때 사용할 시작 문자를 가져오거나 설정합니다.

QuoteSuffix

이름에 공백 또는 예약된 토큰과 같은 문자가 포함된 SQL Server 데이터베이스 개체(예: 테이블 또는 열)를 지정할 때 사용할 끝 문자를 가져오거나 설정합니다.

SchemaSeparator

스키마 식별자와 다른 식별자 간의 구분 기호로 사용할 문자를 가져오거나 설정합니다.

메서드

DeriveParameters(SqlCommand)

SqlCommand에 지정된 저장 프로시저의 매개 변수 정보를 검색하여 지정된 Parameters 개체의 SqlCommand 컬렉션을 채웁니다.

GetDeleteCommand()

데이터베이스에서 삭제하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

GetDeleteCommand(Boolean)

데이터베이스에서 삭제하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

GetInsertCommand()

데이터베이스에서 삽입하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

GetInsertCommand(Boolean)

데이터베이스에서 삽입하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

GetUpdateCommand()

데이터베이스에서 업데이트하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

GetUpdateCommand(Boolean)

데이터베이스에서 업데이트하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.

QuoteIdentifier(String)

연결된 SQL Server 데이터베이스와 DataSet 의 변경 내용을 조정하는 데 사용하는 단일 테이블 명령을 자동으로 생성합니다. 이 클래스는 상속될 수 없습니다.

UnquoteIdentifier(String)

따옴표 붙은 식별자가 제공되는 경우 따옴표 붙지 않은 올바른 형식의 해당 식별자를 반환합니다. 여기에는 식별자에 포함된 모든 따옴표를 이스케이프 해제하는 작업이 포함됩니다.

적용 대상