다음을 통해 공유


SqlDataAdapter 클래스

정의

DataSet 를 채우고 SQL Server 데이터베이스를 업데이트하는 데 사용되는 데이터베이스 연결 및 데이터 명령 집합을 나타냅니다. 이 클래스는 상속될 수 없습니다.

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDataAdapter, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDataAdapter, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
상속
SqlDataAdapter
구현

예제

다음 예제에서는 , SqlDataAdapterSqlConnection 를 사용하여 SqlCommand데이터베이스에서 레코드를 선택하고 선택한 행으로 를 DataSet 채웁니다. 채워진 DataSet 반환 됩니다. 이를 위해 메서드는 초기화된 DataSet, 연결 문자열 및 Transact-SQL SELECT 문인 쿼리 문자열을 전달합니다.

using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;

public class Form1 : Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    private static DataSet SelectRows(DataSet dataset,
        string connectionString, string queryString)
    {
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                queryString, connection);
            adapter.Fill(dataset);
            return dataset;
        }
    }
}

설명

SqlDataAdapter데이터를 검색하고 저장하기 위한 와 SQL Server 간의 DataSet 브리지 역할을 합니다. 는 SqlDataAdapter 데이터 원본의 데이터와 일치하도록 의 DataSet 데이터를 변경하는 를 매핑하고Update, 데이터 원본에 적절한 Transact-SQL 문을 사용하여 의 데이터 원본의 데이터를 의 데이터DataSet와 일치하도록 변경하는 을 매핑Fill하여 이 브리지를 제공합니다. 업데이트는 행별로 수행됩니다. 삽입, 수정 및 삭제된 모든 행에 대해 메서드는 해당 행 Update 에 대해 수행된 변경 유형(Insert, Update또는 Delete)을 결정합니다. 변경 유형에 따라 , InsertUpdate또는 Delete 명령 템플릿이 실행되어 수정된 행을 데이터 원본에 전파합니다. 이 SqlDataAdapter 를 채우 DataSet면 반환된 데이터에 필요한 테이블과 열이 아직 없는 경우 만듭니다. 그러나 기본 키 정보는 속성이 로 설정AddWithKey되지 않는 한 암시적으로 생성된 스키마에 MissingSchemaAction 포함되지 않습니다. 를 사용하여 데이터로 SqlDataAdapter 채우기 전에 기본 키 정보를 포함하여 의 DataSet스키마를 만들 수도 FillSchema있습니다. 자세한 내용은 기존 제약 조건 데이터 세트에 추가를 참조하세요.

SqlDataAdapter는 및 SqlCommand 와 함께 SqlConnection 사용하여 SQL Server 데이터베이스에 연결할 때 성능을 향상합니다.

참고

SQL Server 저장 프로시저를 사용하여 DataAdapter를 사용하여 데이터를 편집하거나 삭제하는 경우 저장 프로시저 정의에서 SET NOCOUNT ON을 사용하지 않아야 합니다. 사용할 경우에는 영향을 받는 행 수가 0으로 반환되어 DataAdapter가 동시성 충돌로 해석됩니다. 이 경우 DBConcurrencyException이 throw됩니다.

SqlDataAdapter 에는 데이터 로드 및 업데이트를 용이하게 하는 , DeleteCommandInsertCommand, , UpdateCommandTableMappings 속성도 포함됩니다SelectCommand.

인스턴스 SqlDataAdapter 가 만들어지면 읽기/쓰기 속성이 초기 값으로 설정됩니다. 이러한 값의 목록을 보려면 참조는 SqlDataAdapter 생성자입니다.

, DeleteCommandUpdateCommandInsertCommand매개 변수 메커니즘을 통해 수정된 모든 행의 개별 값으로 자동으로 채워진 제네릭 템플릿입니다.

의 데이터 원본에 전파하는 모든 열에 대해 Update, 또는 DeleteCommand에 매개 변수를 InsertCommandUpdateCommand추가해야 합니다. SourceColumn 개체의 DbParameter 속성을 열 이름으로 설정해야 합니다. 이 설정은 매개 변수의 값이 수동으로 설정되지 않고 현재 처리된 행의 특정 열에서 가져온다는 것을 나타냅니다.

참고

InvalidOperationException 메서드가 Fill 호출되고 테이블에 클라이언트 컴퓨터에서 사용할 수 없는 사용자 정의 형식이 포함된 경우 이 발생합니다. 자세한 내용은 CLR 사용자 정의 형식을 참조하세요.

생성자

SqlDataAdapter()

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

SqlDataAdapter(SqlCommand)

SqlDataAdapter 속성으로서 지정된 SqlCommand를 사용하여 SelectCommand 클래스의 새 인스턴스를 초기화합니다.

SqlDataAdapter(String, SqlConnection)

SqlDataAdapterSelectCommand 개체를 사용하여 SqlConnection 클래스의 새 인스턴스를 초기화합니다.

SqlDataAdapter(String, String)

SqlDataAdapter와 연결 문자열을 사용하여 SelectCommand 클래스의 새 인스턴스를 초기화합니다.

속성

DeleteCommand

레코드를 데이터 집합으로부터 삭제할 Transact-SQL 문이나 저장 프로시저를 가져오거나 설정합니다.

InsertCommand

새로운 레코드를 데이터 소스에 삽입할 Transact-SQL 문이나 저장 프로시저를 가져오거나 설정합니다.

SelectCommand

데이터 소스에서 레코드를 선택하는 데 사용하는 Transact-SQL 문이나 저장 프로시저를 가져오거나 설정합니다.

UpdateBatchSize

서버에 대한 각 라운드트립에서 처리된 행의 수를 가져오거나 설정합니다.

UpdateCommand

데이터 소스에서 레코드를 업데이트하는 데 사용하는 Transact-SQL 문이나 저장 프로시저를 가져오거나 설정합니다.

이벤트

RowUpdated

데이터 소스에 대해 명령이 실행된 후에 Update(DataSet)를 수행하는 동안 발생합니다. 업데이트를 시도했으므로 이벤트가 발생합니다.

RowUpdating

데이터 소스에 대해 명령이 실행되기 전에 Update(DataSet)를 수행하는 동안 발생합니다. 업데이트를 시도했으므로 이벤트가 발생합니다.

명시적 인터페이스 구현

ICloneable.Clone()

이 멤버에 대한 설명은 Clone()를 참조하세요.

IDbDataAdapter.DeleteCommand

이 멤버에 대한 설명은 DeleteCommand를 참조하세요.

IDbDataAdapter.InsertCommand

이 멤버에 대한 설명은 InsertCommand를 참조하세요.

IDbDataAdapter.SelectCommand

이 멤버에 대한 설명은 SelectCommand를 참조하세요.

IDbDataAdapter.UpdateCommand

이 멤버에 대한 설명은 UpdateCommand를 참조하세요.

적용 대상