SqlCommandBuilder SqlCommandBuilder SqlCommandBuilder SqlCommandBuilder Class

정의

연결된 SQL Server 데이터베이스에서 DataSet의 변경 내용을 조정하는 데 사용되는 단일 테이블 명령을 자동으로 생성합니다.Automatically generates single-table commands that are used to reconcile changes made to a DataSet with the associated SQL Server database. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

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
상속

예제

다음 예제에서는 합니다 SqlCommand, 함께 SqlDataAdapterSqlConnection, 데이터 원본에서 행을 선택 합니다.The following example uses the SqlCommand, along SqlDataAdapter and SqlConnection, to select rows from a data source. 이 예제에서는 연결 문자열, TRANSACT-SQL SELECT 문 하는 쿼리 문자열 및 데이터베이스 테이블의 이름을 나타내는 문자열에 전달 됩니다.The example is passed a connection string, a query string that is a Transact-SQL SELECT statement, and a string that is the name of the database table. 만듭니다는 SqlCommandBuilder합니다.The example then creates a SqlCommandBuilder.

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;
    }
}
Private Function SelectSqlRows(ByVal connectionString As String, _
    ByVal queryString As String, ByVal tableName As String) As DataSet

    Using connection As New SqlConnection(connectionString)

        Dim adapter As New SqlDataAdapter()
        adapter.SelectCommand = New SqlCommand(queryString, connection)
        Dim builder As New SqlCommandBuilder(adapter)

        connection.Open()

        Dim dataSet As 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
    End Using
End Function

설명

SqlDataAdapter 변경 내용을 조정 하는 데 필요한 TRANSACT-SQL 문을 자동으로 생성 하지 않습니다는 DataSet SQL Server 인스턴스와 연결 합니다.The SqlDataAdapter does not automatically generate the Transact-SQL statements required to reconcile changes made to a DataSet with the associated instance of SQL Server. 만들 수 있습니다는 SqlCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 TRANSACT-SQL 문을 자동으로 생성 하는 개체를 SelectCommand 의 속성을 SqlDataAdapter입니다.However, you can create a SqlCommandBuilder object to automatically generate Transact-SQL statements for single-table updates if you set the SelectCommand property of the SqlDataAdapter. 설정 하지 않으면 모든 추가 TRANSACT-SQL 문이에서 생성 된 후에 SqlCommandBuilder합니다.Then, any additional Transact-SQL statements that you do not set are generated by the SqlCommandBuilder.

합니다 SqlCommandBuilder 자체에 대 한 수신기를 등록 RowUpdating 설정할 때마다 이벤트를 DataAdapter 속성입니다.The SqlCommandBuilder registers itself as a listener for RowUpdating events whenever you set the DataAdapter property. 만 연결할 수 있습니다 SqlDataAdapter 또는 SqlCommandBuilder 서로 사용 하 여 개체를 한 번에 있습니다.You can only associate one SqlDataAdapter or SqlCommandBuilder object with each other at one time.

INSERT, UPDATE 또는 DELETE 문을 생성 하는 SqlCommandBuilder 사용 하 여를 SelectCommand 메타 데이터의 집합을 자동으로 검색할 속성.To generate INSERT, UPDATE, or DELETE statements, the SqlCommandBuilder uses the SelectCommand property to retrieve a required set of metadata automatically. 변경 하는 경우는 SelectCommand 메타 데이터를 검색 한 첫 번째 업데이트 이후 호출 해야 같은 후는 RefreshSchema 메타 데이터를 업데이트 하는 방법입니다.If you change the SelectCommand after the metadata has been retrieved, such as after the first update, you should call the RefreshSchema method to update the metadata.

또한 SelectCommand는 기본 키 열이나 고유 열을 하나 이상 반환해야 합니다.The SelectCommand must also return at least one primary key or unique column. None이 있는 경우는 InvalidOperation 예외가 생성 되 고 명령은 생성 되지 않습니다.If none are present, an InvalidOperation exception is generated, and the commands are not generated.

SqlCommandBuilder 도 사용 합니다 Connection, CommandTimeout, 및 Transaction 속성에서 참조 하는 SelectCommand.The SqlCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties referenced by the SelectCommand. 호출 해야 합니다 RefreshSchema 이러한 속성 중 하나 이상이 수정 되 면 아니면는 SelectCommand 자체 바뀝니다.The user should call RefreshSchema if one or more of these properties are modified, or if the SelectCommand itself is replaced. 그렇지 않은 경우는 InsertCommand, UpdateCommand, 및 DeleteCommand 이전 값을 유지 하는 속성입니다.Otherwise the InsertCommand, UpdateCommand, and DeleteCommand properties retain their previous values.

호출 하는 경우 DisposeSqlCommandBuilder 에서 분리를 SqlDataAdapter, 및 생성된 된 명령을 더 이상 사용 합니다.If you call Dispose, the SqlCommandBuilder is disassociated from the SqlDataAdapter, and the generated commands are no longer used.

생성자

SqlCommandBuilder() SqlCommandBuilder() SqlCommandBuilder() SqlCommandBuilder()

SqlCommandBuilder 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SqlCommandBuilder class.

SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter)

관련 SqlCommandBuilder 개체를 사용하여 SqlDataAdapter 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SqlCommandBuilder class with the associated SqlDataAdapter object.

속성

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the component can raise an event.

(Inherited from Component)
CatalogLocation CatalogLocation CatalogLocation CatalogLocation

CatalogLocation 클래스의 인스턴스에 대한 SqlCommandBuilder을 설정하거나 가져옵니다.Sets or gets the CatalogLocation for an instance of the SqlCommandBuilder class.

CatalogSeparator CatalogSeparator CatalogSeparator CatalogSeparator

SqlCommandBuilder 클래스의 인스턴스에 대한 카탈로그 구분 기호로 사용되는 문자열을 설정하거나 가져옵니다.Sets or gets a string used as the catalog separator for an instance of the SqlCommandBuilder class.

Container Container Container Container

IContainer가 포함된 Component를 가져옵니다.Gets the IContainer that contains the Component.

(Inherited from Component)
DataAdapter DataAdapter DataAdapter DataAdapter

Transact-SQL 문을 자동으로 생성할 SqlDataAdapter 개체를 가져오거나 설정합니다.Gets or sets a SqlDataAdapter object for which Transact-SQL statements are automatically generated.

DesignMode DesignMode DesignMode DesignMode

Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
Events Events Events Events

Component에 연결된 이벤트 처리기의 목록을 가져옵니다.Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
QuotePrefix QuotePrefix QuotePrefix QuotePrefix

이름에 공백 또는 예약된 토큰과 같은 문자가 포함된 SQL Server 데이터베이스 개체(예: 테이블 또는 열)를 지정할 때 사용할 시작 문자를 가져오거나 설정합니다.Gets or sets the starting character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

QuoteSuffix QuoteSuffix QuoteSuffix QuoteSuffix

이름에 공백 또는 예약된 토큰과 같은 문자가 포함된 SQL Server 데이터베이스 개체(예: 테이블 또는 열)를 지정할 때 사용할 끝 문자를 가져오거나 설정합니다.Gets or sets the ending character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

SchemaSeparator SchemaSeparator SchemaSeparator SchemaSeparator

스키마 식별자와 다른 식별자 간의 구분 기호로 사용할 문자를 가져오거나 설정합니다.Gets or sets the character to be used for the separator between the schema identifier and any other identifiers.

Site Site Site Site

ComponentISite를 가져오거나 설정합니다.Gets or sets the ISite of the Component.

(Inherited from Component)

메서드

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
DeriveParameters(SqlCommand) DeriveParameters(SqlCommand) DeriveParameters(SqlCommand) DeriveParameters(SqlCommand)

SqlCommand에 지정된 저장 프로시저의 매개 변수 정보를 검색하여 지정된 Parameters 개체의 SqlCommand 컬렉션을 채웁니다.Retrieves parameter information from the stored procedure specified in the SqlCommand and populates the Parameters collection of the specified SqlCommand object.

Dispose() Dispose() Dispose() Dispose()

Component에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Component에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetDeleteCommand() GetDeleteCommand() GetDeleteCommand() GetDeleteCommand()

데이터베이스에서 삭제하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object required to perform deletions on the database.

GetDeleteCommand(Boolean) GetDeleteCommand(Boolean) GetDeleteCommand(Boolean) GetDeleteCommand(Boolean)

데이터베이스에서 삭제하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object that is required to perform deletions on the database.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetInsertCommand() GetInsertCommand() GetInsertCommand() GetInsertCommand()

데이터베이스에서 삽입하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object required to perform insertions on the database.

GetInsertCommand(Boolean) GetInsertCommand(Boolean) GetInsertCommand(Boolean) GetInsertCommand(Boolean)

데이터베이스에서 삽입하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object that is required to perform insertions on the database.

GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다.Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
GetUpdateCommand() GetUpdateCommand() GetUpdateCommand() GetUpdateCommand()

데이터베이스에서 업데이트하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object required to perform updates on the database.

GetUpdateCommand(Boolean) GetUpdateCommand(Boolean) GetUpdateCommand(Boolean) GetUpdateCommand(Boolean)

데이터베이스에서 업데이트하는 데 필요한 자동으로 생성된 SqlCommand 개체를 가져옵니다.Gets the automatically generated SqlCommand object required to perform updates on the database.

InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
QuoteIdentifier(String) QuoteIdentifier(String) QuoteIdentifier(String) QuoteIdentifier(String)

올바른 카탈로그에서 따옴표 붙지 않은 식별자가 제공되는 경우 따옴표 붙은 올바른 형식의 해당 식별자를 반환합니다.Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. 여기에는 식별자에 포함된 모든 따옴표를 이스케이프하는 작업이 포함됩니다.This includes correctly escaping any embedded quotes in the identifier.

RefreshSchema() RefreshSchema() RefreshSchema() RefreshSchema()

이 명령 작성기와 관련된 명령을 지웁니다.Clears the commands that are associated with this command builder.

ToString() ToString() ToString() ToString()

Component의 이름이 포함된 String을 반환합니다(있는 경우).Returns a String containing the name of the Component, if any. 이 메서드는 재정의할 수 없습니다.This method should not be overridden.

(Inherited from Component)
UnquoteIdentifier(String) UnquoteIdentifier(String) UnquoteIdentifier(String) UnquoteIdentifier(String)

따옴표 붙은 식별자가 제공되는 경우 따옴표 붙지 않은 올바른 형식의 해당 식별자를 반환합니다.Given a quoted identifier, returns the correct unquoted form of that identifier. 여기에는 식별자에 포함된 모든 따옴표를 이스케이프 해제하는 작업이 포함됩니다.This includes correctly unescaping any embedded quotes in the identifier.

이벤트

Disposed Disposed Disposed Disposed

Dispose() 메서드를 호출하여 구성 요소가 삭제되는 경우 발생합니다.Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)

적용 대상

추가 정보