SqlCommandBuilder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
연결된 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
- 상속
- 상속
예제
다음 예제에서는 데이터 원본에서 행을 선택하기 위해 함께 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, CommandTimeout및 Transaction 속성을 사용합니다. 사용자는 이러한 속성 중 하나 이상이 수정되거나 자체 속성이 바뀐 경우 SelectCommand 호출 RefreshSchema 해야 합니다. 그렇지 않으면 , UpdateCommand및 DeleteCommand 속성은 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) |
지정된 매개 변수의 이름을 .의 형식 |
| 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, Transaction및 CommandTypeUpdateRowSource 속성을 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) |