다음을 통해 공유


SqlCommandBuilder 클래스

정의

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

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

예제

다음 예제에서는 데이터 원본에서 행을 선택하기 위해 함께 SqlDataAdapterSqlConnection및 를 사용합니다SqlCommand. 이 예제는 연결 문자열, Transact-SQL SELECT 문인 쿼리 문자열 및 데이터베이스 테이블의 이름인 문자열을 전달합니다. 그런 다음 이 예제에서는 .를 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 SQL Server의 연결된 인스턴스에 대한 변경 내용을 DataSet 조정하는 데 필요한 Transact-SQL 문을 자동으로 생성하지 않습니다. 그러나 개체를 SqlCommandBuilder 만들어 단일 테이블 업데이트 SelectCommand 에 대한 Transact-SQL 문을 자동으로 생성할 수 있습니다.SqlDataAdapter 그런 다음 설정하지 않은 추가 Transact-SQL 문이 생성됩니다 SqlCommandBuilder.

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

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

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

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

호출 DisposeSqlCommandBuilder 하면 해당 명령이 해당 명령과 SqlDataAdapter연결되지 않으며 생성된 명령은 더 이상 사용되지 않습니다.

생성자

Name Description
SqlCommandBuilder()

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

SqlCommandBuilder(SqlDataAdapter)

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

속성

Name Description
CanRaiseEvents

구성 요소가 이벤트를 발생시키는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
CatalogLocation

클래스의 CatalogLocationSqlCommandBuilder 인스턴스를 가져오거나 설정합니다.

CatalogSeparator

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

ConflictOption

에서 사용할 DbCommandBuilder값을 지정합니다ConflictOption.

(다음에서 상속됨 DbCommandBuilder)
Container

IContainer 포함하는 값을 가져옵니다 Component.

(다음에서 상속됨 Component)
DataAdapter

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

DesignMode

현재 디자인 모드인지 여부를 Component 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
Events

Component에 연결된 이벤트 처리기 목록을 가져옵니다.

(다음에서 상속됨 Component)
QuotePrefix

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

QuoteSuffix

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

SchemaSeparator

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

SetAllValues

update 문의 모든 열 값이 포함되는지 또는 변경된 값만 포함되는지 여부를 지정합니다.

(다음에서 상속됨 DbCommandBuilder)
Site

ISite값을 Component 가져오거나 설정합니다.

(다음에서 상속됨 Component)

메서드

Name Description
ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

클래스의 공급자 구현에서 DbCommandBuilder 추가 매개 변수 속성을 처리할 수 있습니다.

(다음에서 상속됨 DbCommandBuilder)
CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시를 생성하는 데 필요한 모든 관련 정보를 포함하는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
DeriveParameters(SqlCommand)

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

Dispose()

에서 사용하는 모든 리소스를 Component해제합니다.

(다음에서 상속됨 Component)
Dispose(Boolean)

관리되지 않는 리소스를 Component 해제하고 관리되는 리소스를 선택적으로 해제합니다.

(다음에서 상속됨 Component)
Dispose(Boolean)

관리되지 않는 리소스를 DbCommandBuilder 해제하고 관리되는 리소스를 선택적으로 해제합니다.

(다음에서 상속됨 DbCommandBuilder)
Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetDeleteCommand()

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

GetDeleteCommand(Boolean)

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

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetInsertCommand()

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

GetInsertCommand(Boolean)

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

GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetParameterName(Int32)

지정된 매개 변수의 이름을 .의 형식 @p#으로 반환합니다. 사용자 지정 명령 작성기를 빌드할 때 사용합니다.

(다음에서 상속됨 DbCommandBuilder)
GetParameterName(String)

부분 매개 변수 이름이 지정된 경우 전체 매개 변수 이름을 반환합니다.

(다음에서 상속됨 DbCommandBuilder)
GetParameterPlaceholder(Int32)

연결된 SQL 문의 매개 변수에 대한 자리 표시자를 반환합니다.

(다음에서 상속됨 DbCommandBuilder)
GetSchemaTable(DbCommand)

에 대한 스키마 테이블을 반환합니다 DbCommandBuilder.

(다음에서 상속됨 DbCommandBuilder)
GetService(Type)

또는 해당 서비스에서 제공하는 서비스를 나타내는 개체를 Component 반환합니다 Container.

(다음에서 상속됨 Component)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
GetUpdateCommand()

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

GetUpdateCommand(Boolean)

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

InitializeCommand(DbCommand)

에 대한 CommandTimeout, TransactionCommandTypeUpdateRowSource 속성을 DbCommand다시 설정합니다.

(다음에서 상속됨 DbCommandBuilder)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
QuoteIdentifier(String)

올바른 카탈로그 사례에서 따옴표가 지정되지 않은 식별자가 지정된 경우 해당 식별자의 올바른 따옴표 붙은 형식을 반환합니다. 여기에는 식별자에 포함된 따옴표를 올바르게 이스케이프하는 것이 포함됩니다.

RefreshSchema()

이 명령 작성기와 연결된 명령을 지웁니다.

RefreshSchema()

DbCommandBuilder명령과 연결된 명령을 지웁니다.

(다음에서 상속됨 DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

이벤트에 대한 이벤트 처리기를 추가합니다 RowUpdating .

(다음에서 상속됨 DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

DbCommandBuilder 대한 이벤트를 처리 RowUpdating 하도록 등록합니다 DbDataAdapter.

(다음에서 상속됨 DbCommandBuilder)
ToString()

String(있는 경우)의 Component이름을 포함하는 값을 반환합니다. 이 메서드는 재정의해서는 안 됩니다.

(다음에서 상속됨 Component)
UnquoteIdentifier(String)

따옴표 붙은 식별자를 지정하면 해당 식별자의 올바른 따옴표가 지정되지 않은 형식을 반환합니다. 여기에는 식별자에 포함된 따옴표를 올바르게 이스케이프 해제하는 것이 포함됩니다.

이벤트

Name Description
Disposed

구성 요소가 메서드 호출에 Dispose() 의해 삭제될 때 발생합니다.

(다음에서 상속됨 Component)

적용 대상

추가 정보