SqlCommandBuilder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
연결된 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, CommandTimeout및 Transaction 속성도 사용합니다. 사용자는 이러한 속성 중 하나 이상이 수정되거나 자체 속성이 SelectCommand 바뀐 경우 를 호출 RefreshSchema 해야 합니다. 그렇지 않으면 , UpdateCommand및 DeleteCommand 속성은 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) |
따옴표 붙은 식별자가 제공되는 경우 따옴표 붙지 않은 올바른 형식의 해당 식별자를 반환합니다. 여기에는 식별자에 포함된 모든 따옴표를 이스케이프 해제하는 작업이 포함됩니다. |