DbDataAdapter.Update 메서드

정의

DataSet에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

오버로드

Update(DataSet, String)

DataTable 이름이 지정된 DataSet에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

Update(DataRow[], DataTableMapping)

지정된 DataRow 개체 배열에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

Update(DataTable)

지정된 DataTable에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

Update(DataSet)

지정된 DataSet에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

Update(DataRow[])

DataSet의 지정된 배열에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스의 값을 업데이트합니다.

Update(DataSet, String)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

DataTable 이름이 지정된 DataSet에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

public:
 int Update(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Update (System.Data.DataSet dataSet, string srcTable);
override this.Update : System.Data.DataSet * string -> int
Public Function Update (dataSet As DataSet, srcTable As String) As Integer

매개 변수

dataSet
DataSet

데이터 소스를 업데이트하는 데 사용할 DataSet입니다.

srcTable
String

테이블 매핑에 사용할 원본 테이블의 이름입니다.

반환

DataSet에서 성공적으로 업데이트된 행의 수를 반환합니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우

예제

다음 예제에서는 파생 클래스 를 OleDbDataAdapter사용하여 데이터 원본을 업데이트합니다.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString, string tableName)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers, tableName);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String, _
    ByVal tableName As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers, tableName)

        Return customers
    End Using
End Function

설명

애플리케이션 호출 하는 경우는 Update 메서드를 DbDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 에서 Update 행의 순서로 인해 DELETE 문과 INSERT 문, 또 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션에서 호출할 수는 GetChanges 명령문의 시퀀스를 제어 해야 하는 경우에 메서드 (예를 들어 업데이트 하기 전에 삽입). 자세한 내용은 Dataadapter 사용 하 여 데이터 원본 업데이트합니다.

하는 경우 INSERT, UPDATE 또는 DELETE 문이 지정 되지 않았습니다는 Update 메서드 예외를 생성 합니다. 만들 수 있습니다는 SqlCommandBuilder 또는 OleDbCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 SQL 문을 자동으로 생성 하는 개체는 SelectCommand .NET Framework 데이터 공급자의 속성입니다. 그런 다음 설정하지 않은 추가 SQL 문은 CommandBuilder에 의해 생성됩니다. 이 세대 논리에 키 열 정보가 필요 합니다 DataSet합니다. 자세한 내용은 참조 commandbuilder를 사용 하를 사용 하 여 명령 생성합니다.

메서드는 Update 이름이 대/소문자 DataSet 별로만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이름이 같지만 다른 여러 테이블이 에 DataSetUpdate 있는 경우 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 예외를 생성합니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet ds = new DataSet();  
 ds.Tables.Add("aaa");  
 ds.Tables.Add("AAA");  
 adapter.Update(ds, "aaa"); // Updates "aaa", which already exists in the DataSet.  
 adapter.Update(ds, "AAA"); // Updates "AAA", which already exists in the DataSet.  
    adapter.Update(ds, "Aaa"); // Results in an exception.  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함된 경우 Update 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Update(dataset, "AAA"); // Updates table "aaa" because only one similarly named table is in the DataSet.  

Update 메서드 업데이트를 수행 하기 전에 첫 번째 매핑의에 나열 된 테이블에서 행을 검색 합니다. 그런 다음 속성 Update 값을 사용하여 행을 UpdatedRowSource 새로 고칩니다. 반환 되는 모든 추가 행은 무시 됩니다.

모든 데이터에 다시 로드 된 후는 DataSet, OnRowUpdated 이벤트가 발생 하는 조정 된 검사할 수 있도록 DataSet 행 및 모든 출력 매개 변수는 명령으로 반환 합니다. 행을 성공적으로 업데이트 한 후 해당 행 변경 내용이 허용 됩니다.

사용 하는 경우 Update, 실행 순서는 다음과 같습니다.

  1. 값을 DataRow 매개 변수 값으로 이동 됩니다.

  2. OnRowUpdating 이벤트가 발생합니다.

  3. 명령을 실행합니다.

  4. 명령이 로 FirstReturnedRecord설정된 경우 첫 번째 반환된 결과가 에 DataRow배치됩니다.

  5. 에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.

  6. OnRowUpdated 이벤트가 발생합니다.

  7. AcceptChanges을 호출합니다.

와 연결된 DbDataAdapter 각 명령에는 일반적으로 연결된 매개 변수 컬렉션이 있습니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumnSourceVersion .NET Framework 데이터 공급자의 속성 Parameter 클래스입니다. SourceColumn 참조를 DataTable 열은는 DbDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.

SourceColumn 테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn 참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.

열거형 값 수행한 작업
MissingMappingAction.Passthrough 원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우.
MissingMappingAction.Ignore SystemException 생성 됩니다. 매핑이 명시적으로 설정되면 입력 매개 변수에 대한 누락된 매핑은 일반적으로 오류의 결과입니다.
MissingMappingAction.Error SystemException 생성 됩니다.

합니다 SourceColumn 속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.

.NET Framework 데이터 공급자 클래스의 속성은 SourceVersion 열 값의 Parameter Original, Current 또는 Proposed 버전을 사용할지 여부를 결정합니다. 이 기능은 낙관적 동시성 위반을 검사 위해 UPDATE 문의 WHERE 절에 원래 값을 포함하는 데 자주 사용됩니다.

참고

행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true 호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated 이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgsContinue입니다.

추가 정보

적용 대상

Update(DataRow[], DataTableMapping)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

지정된 DataRow 개체 배열에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

protected:
 virtual int Update(cli::array <System::Data::DataRow ^> ^ dataRows, System::Data::Common::DataTableMapping ^ tableMapping);
protected virtual int Update (System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
override this.Update : System.Data.DataRow[] * System.Data.Common.DataTableMapping -> int
Protected Overridable Function Update (dataRows As DataRow(), tableMapping As DataTableMapping) As Integer

매개 변수

dataRows
DataRow[]

데이터 소스를 업데이트하는 데 사용되는 DataRow 개체의 배열입니다.

tableMapping
DataTableMapping

사용할 TableMappings 컬렉션입니다.

반환

개체 배열에서 성공적으로 업데이트된 행 수 DataRow 입니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

업데이트할 DataRow이 없는 경우

또는

업데이트할 DataTable이 없는 경우

또는

소스로 사용할 DataSet이 없는 경우

INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우

설명

애플리케이션 호출 하는 경우는 Update 메서드를 DbDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 에서 Update 행의 순서로 인해 DELETE 문과 INSERT 문, 또 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션에서 호출할 수는 GetChanges 문 형식 (예: 업데이트 하기 전에 삽입)의 시퀀스를 제어 해야 할 경우에 합니다. 자세한 내용은 Dataadapter 사용 하 여 데이터 원본 업데이트합니다.

하는 경우 INSERT, UPDATE 또는 DELETE 문이 지정 되지 않았습니다는 Update 메서드 예외를 생성 합니다. 만들 수 있습니다는 SqlCommandBuilder 또는 OleDbCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 SQL 문을 자동으로 생성 하는 개체는 SelectCommand .NET Framework 데이터 공급자의 속성입니다. 그런 다음 설정하지 않은 추가 SQL 문은 CommandBuilder에 의해 생성됩니다. 이 세대 논리에 키 열 정보가 필요 합니다 DataSet합니다. 자세한 내용은 참조 commandbuilder를 사용 하를 사용 하 여 명령 생성합니다.

Update 메서드 업데이트를 수행 하기 전에 첫 번째 매핑의에 나열 된 테이블에서 행을 검색 합니다. 그런 다음 속성 Update 값을 사용하여 행을 UpdatedRowSource 새로 고칩니다. 반환 되는 모든 추가 행은 무시 됩니다.

모든 데이터에 다시 로드 된 후는 DataSet, OnRowUpdated 이벤트가 발생 하는 조정 된 검사할 수 있도록 DataSet 행 및 모든 출력 매개 변수는 명령으로 반환 합니다. 행을 성공적으로 업데이트 한 후 해당 행 변경 내용이 허용 됩니다.

사용 하는 경우 Update, 실행 순서는 다음과 같습니다.

  1. 값을 DataRow 매개 변수 값으로 이동 됩니다.

  2. OnRowUpdating 이벤트가 발생합니다.

  3. 명령을 실행합니다.

  4. 명령이 로 FirstReturnedRecord설정된 경우 첫 번째 반환된 결과가 에 DataRow배치됩니다.

  5. 에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.

  6. OnRowUpdated 이벤트가 발생합니다.

  7. AcceptChanges을 호출합니다.

와 연결된 DbDataAdapter 각 명령에는 일반적으로 연결된 매개 변수 컬렉션이 있습니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumnSourceVersion .NET Framework 데이터 공급자의 속성 Parameter 클래스입니다. SourceColumn 참조를 DataTable 열은는 DbDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.

SourceColumn 테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn 참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.

열거형 값 수행한 작업
MissingMappingAction.Passthrough 원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우.
MissingMappingAction.Ignore SystemException 생성 됩니다. 매핑이 명시적으로 설정되면 입력 매개 변수에 대한 누락된 매핑은 일반적으로 오류의 결과입니다.
MissingMappingAction.Error SystemException 생성 됩니다.

합니다 SourceColumn 속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.

.NET Framework 데이터 공급자 클래스의 속성은 SourceVersion 열 값의 Parameter Original, Current 또는 Proposed 버전을 사용할지 여부를 결정합니다. 이 기능은 낙관적 동시성 위반을 검사 위해 UPDATE 문의 WHERE 절에 원래 값을 포함하는 데 자주 사용됩니다.

참고

행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true 호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated 이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgsContinue입니다.

추가 정보

적용 대상

Update(DataTable)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

지정된 DataTable에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

public:
 int Update(System::Data::DataTable ^ dataTable);
public int Update (System.Data.DataTable dataTable);
override this.Update : System.Data.DataTable -> int
Public Function Update (dataTable As DataTable) As Integer

매개 변수

dataTable
DataTable

데이터 소스를 업데이트하는 데 사용된 DataTable입니다.

반환

DataTable에서 성공적으로 업데이트된 행의 수를 반환합니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

업데이트할 DataRow이 없는 경우

또는

업데이트할 DataTable이 없는 경우

또는

소스로 사용할 DataSet이 없는 경우

INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우

예제

다음 예제에서는 파생 클래스 를 OleDbDataAdapter사용하여 데이터 원본을 업데이트합니다.

public DataTable CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataTable customers = new DataTable();
        adapter.Fill(customers);

        // code to modify data in DataTable here

        adapter.Update(customers);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataTable

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataTable()
        adapter.Fill(customers)

        ' Code to modify data in DataTable here 

        adapter.Update(customers)
        Return customers
    End Using
End Function

설명

애플리케이션 호출 하는 경우는 Update 메서드를 DbDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 에서 Update 행의 순서로 인해 DELETE 문과 INSERT 문, 또 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션에서 호출할 수는 GetChanges 문 형식 (예: 업데이트 하기 전에 삽입)의 시퀀스를 제어 해야 할 경우에 합니다. 자세한 내용은 Dataadapter 사용 하 여 데이터 원본 업데이트합니다.

하는 경우 INSERT, UPDATE 또는 DELETE 문이 지정 되지 않았습니다는 Update 메서드 예외를 생성 합니다. 만들 수 있습니다는 SqlCommandBuilder 또는 OleDbCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 SQL 문을 자동으로 생성 하는 개체는 SelectCommand .NET Framework 데이터 공급자의 속성입니다. 그런 다음 설정하지 않은 추가 SQL 문은 CommandBuilder에 의해 생성됩니다. 이 세대 논리에 키 열 정보가 필요 합니다 DataSet합니다. 자세한 내용은 참조 commandbuilder를 사용 하를 사용 하 여 명령 생성합니다.

Update 메서드 업데이트를 수행 하기 전에 첫 번째 매핑의에 나열 된 테이블에서 행을 검색 합니다. 그런 다음 속성 Update 값을 사용하여 행을 UpdatedRowSource 새로 고칩니다. 반환 되는 모든 추가 행은 무시 됩니다.

모든 데이터에 다시 로드 된 후는 DataSet, OnRowUpdated 이벤트가 발생 하는 조정 된 검사할 수 있도록 DataSet 행 및 모든 출력 매개 변수는 명령으로 반환 합니다. 행을 성공적으로 업데이트 한 후 해당 행 변경 내용이 허용 됩니다.

사용 하는 경우 Update, 실행 순서는 다음과 같습니다.

  1. 값을 DataRow 매개 변수 값으로 이동 됩니다.

  2. OnRowUpdating 이벤트가 발생합니다.

  3. 명령을 실행합니다.

  4. 명령이 로 FirstReturnedRecord설정된 경우 첫 번째 반환된 결과가 에 DataRow배치됩니다.

  5. 에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.

  6. OnRowUpdated 이벤트가 발생합니다.

  7. AcceptChanges을 호출합니다.

와 연결된 DbDataAdapter 각 명령에는 일반적으로 연결된 매개 변수 컬렉션이 있습니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumnSourceVersion .NET Framework 데이터 공급자의 속성 Parameter 클래스입니다. SourceColumn 참조를 DataTable 열은는 DbDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.

SourceColumn 테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn 참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.

열거형 값 수행한 작업
MissingMappingAction.Passthrough 원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우.
MissingMappingAction.Ignore SystemException 생성 됩니다. 매핑이 명시적으로 설정되면 입력 매개 변수에 대한 누락된 매핑은 일반적으로 오류의 결과입니다.
MissingMappingAction.Error SystemException 생성 됩니다.

합니다 SourceColumn 속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.

.NET Framework 데이터 공급자 클래스의 속성은 SourceVersion 열 값의 Parameter Original, Current 또는 Proposed 버전을 사용할지 여부를 결정합니다. 이 기능은 낙관적 동시성 위반을 검사 위해 UPDATE 문의 WHERE 절에 원래 값을 포함하는 데 자주 사용됩니다.

참고

행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true 호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated 이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgsContinue입니다.

추가 정보

적용 대상

Update(DataSet)

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

지정된 DataSet에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스에 있는 값을 업데이트합니다.

public:
 override int Update(System::Data::DataSet ^ dataSet);
public override int Update (System.Data.DataSet dataSet);
override this.Update : System.Data.DataSet -> int
Public Overrides Function Update (dataSet As DataSet) As Integer

매개 변수

dataSet
DataSet

데이터 소스를 업데이트하는 데 사용된 DataSet입니다.

반환

DataSet에서 성공적으로 업데이트된 행의 수를 반환합니다.

구현

예외

소스 테이블이 잘못된 경우

INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우

예제

다음 예제에서는 파생 클래스 를 OleDbDataAdapter사용하여 데이터 원본을 업데이트합니다.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers)

        Return customers
    End Using
End Function

설명

애플리케이션 호출 하는 경우는 Update 메서드를 DbDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 에서 Update 행의 순서로 인해 DELETE 문과 INSERT 문, 또 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션에서 호출할 수는 GetChanges 문 형식 (예: 업데이트 하기 전에 삽입)의 시퀀스를 제어 해야 할 경우에 합니다. 자세한 내용은 Dataadapter 사용 하 여 데이터 원본 업데이트합니다.

하는 경우 INSERT, UPDATE 또는 DELETE 문이 지정 되지 않았습니다는 Update 메서드 예외를 생성 합니다. 만들 수 있습니다는 SqlCommandBuilder 또는 OleDbCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 SQL 문을 자동으로 생성 하는 개체는 SelectCommand .NET Framework 데이터 공급자의 속성입니다. 그런 다음 설정하지 않은 추가 SQL 문은 CommandBuilder에 의해 생성됩니다. 이 세대 논리에 키 열 정보가 필요 합니다 DataSet합니다. 자세한 내용은 참조 commandbuilder를 사용 하를 사용 하 여 명령 생성합니다.

Update 메서드 업데이트를 수행 하기 전에 첫 번째 매핑의에 나열 된 테이블에서 행을 검색 합니다. 그런 다음 속성 Update 값을 사용하여 행을 UpdatedRowSource 새로 고칩니다. 반환 되는 모든 추가 행은 무시 됩니다.

모든 데이터에 다시 로드 된 후는 DataSet, OnRowUpdated 이벤트가 발생 하는 조정 된 검사할 수 있도록 DataSet 행 및 모든 출력 매개 변수는 명령으로 반환 합니다. 행을 성공적으로 업데이트 한 후 해당 행 변경 내용이 허용 됩니다.

사용 하는 경우 Update, 실행 순서는 다음과 같습니다.

  1. 값을 DataRow 매개 변수 값으로 이동 됩니다.

  2. OnRowUpdating 이벤트가 발생합니다.

  3. 명령을 실행합니다.

  4. 명령이 로 FirstReturnedRecord설정된 경우 첫 번째 반환된 결과가 에 DataRow배치됩니다.

  5. 에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.

  6. OnRowUpdated 이벤트가 발생합니다.

  7. AcceptChanges을 호출합니다.

와 연결된 DbDataAdapter 각 명령에는 일반적으로 연결된 매개 변수 컬렉션이 있습니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumnSourceVersion .NET Framework 데이터 공급자의 속성 Parameter 클래스입니다. SourceColumn 참조를 DataTable 열은는 DbDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.

SourceColumn 테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn 참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.

열거형 값 수행한 작업
MissingMappingAction.Passthrough 원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우.
MissingMappingAction.Ignore SystemException 생성 됩니다. 매핑이 명시적으로 설정되면 입력 매개 변수에 대한 누락된 매핑은 일반적으로 오류의 결과입니다.
MissingMappingAction.Error SystemException 생성 됩니다.

합니다 SourceColumn 속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.

.NET Framework 데이터 공급자 클래스의 속성은 SourceVersion 열 값의 Parameter Original, Current 또는 Proposed 버전을 사용할지 여부를 결정합니다. 이 기능은 낙관적 동시성 위반을 검사 위해 UPDATE 문의 WHERE 절에 원래 값을 포함하는 데 자주 사용됩니다.

참고

행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true 호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated 이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgsContinue입니다.

추가 정보

적용 대상

Update(DataRow[])

Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

DataSet의 지정된 배열에서 삽입, 업데이트 또는 삭제된 각 행마다 INSERT, UPDATE 또는 DELETE 문을 각각 실행하여 데이터베이스의 값을 업데이트합니다.

public:
 int Update(cli::array <System::Data::DataRow ^> ^ dataRows);
public int Update (System.Data.DataRow[] dataRows);
override this.Update : System.Data.DataRow[] -> int
Public Function Update (dataRows As DataRow()) As Integer

매개 변수

dataRows
DataRow[]

데이터 소스를 업데이트하는 데 사용되는 DataRow 개체의 배열입니다.

반환

DataSet에서 성공적으로 업데이트된 행의 수를 반환합니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

업데이트할 DataRow이 없는 경우

또는

업데이트할 DataTable이 없는 경우

또는

소스로 사용할 DataSet이 없는 경우

INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우

예제

다음 예제에서는 파생 클래스 를 OleDbDataAdapter사용하여 데이터 원본을 업데이트합니다.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        //Insert new records from DataSet
        DataRow[] rows = customers.Tables[0].Select(
            null, null, DataViewRowState.Added);
        adapter.Update(rows);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        ' Insert new records from DataSet
        Dim rows() As DataRow = customers.Tables(0).Select( _
            Nothing, Nothing, DataViewRowState.Added)
        adapter.Update(rows)

        Return customers
    End Using
End Function

설명

애플리케이션 호출 하는 경우는 Update 메서드를 DbDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 에서 Update 행의 순서로 인해 DELETE 문과 INSERT 문, 또 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션에서 호출할 수는 GetChanges 문 형식 (예: 업데이트 하기 전에 삽입)의 시퀀스를 제어 해야 할 경우에 합니다. 자세한 내용은 Dataadapter 사용 하 여 데이터 원본 업데이트합니다.

하는 경우 INSERT, UPDATE 또는 DELETE 문이 지정 되지 않았습니다는 Update 메서드 예외를 생성 합니다. 만들 수 있습니다는 SqlCommandBuilder 또는 OleDbCommandBuilder 설정 하는 경우 단일 테이블 업데이트에 대 한 SQL 문을 자동으로 생성 하는 개체는 SelectCommand .NET Framework 데이터 공급자의 속성입니다. 그런 다음 설정하지 않은 추가 SQL 문은 CommandBuilder에 의해 생성됩니다. 이 세대 논리에 키 열 정보가 필요 합니다 DataSet합니다. 자세한 내용은 참조 commandbuilder를 사용 하를 사용 하 여 명령 생성합니다.

Update 메서드 업데이트를 수행 하기 전에 첫 번째 매핑의에 나열 된 테이블에서 행을 검색 합니다. 그런 다음 속성 Update 값을 사용하여 행을 UpdatedRowSource 새로 고칩니다. 반환 되는 모든 추가 행은 무시 됩니다.

모든 데이터에 다시 로드 된 후는 DataSet, OnRowUpdated 이벤트가 발생 하는 조정 된 검사할 수 있도록 DataSet 행 및 모든 출력 매개 변수는 명령으로 반환 합니다. 행을 성공적으로 업데이트 한 후 해당 행 변경 내용이 허용 됩니다.

사용 하는 경우 Update, 실행 순서는 다음과 같습니다.

  1. 값을 DataRow 매개 변수 값으로 이동 됩니다.

  2. OnRowUpdating 이벤트가 발생합니다.

  3. 명령을 실행합니다.

  4. 명령으로 설정 되어 있으면 FirstReturnedRecord, 첫 번째 반환 결과에 위치한는 DataRow합니다.

  5. 에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.

  6. OnRowUpdated 이벤트가 발생합니다.

  7. AcceptChanges을 호출합니다.

와 연결된 DbDataAdapter 각 명령에는 일반적으로 연결된 매개 변수 컬렉션이 있습니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumnSourceVersion .NET Framework 데이터 공급자의 속성 Parameter 클래스입니다. SourceColumn 참조를 DataTable 열은는 DbDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.

SourceColumn 테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn 참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.

열거형 값 수행한 작업
MissingMappingAction.Passthrough 원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우.
MissingMappingAction.Ignore SystemException 생성 됩니다. 매핑이 명시적으로 설정되면 입력 매개 변수에 대한 누락된 매핑은 일반적으로 오류의 결과입니다.
MissingMappingAction.Error SystemException 생성 됩니다.

합니다 SourceColumn 속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.

.NET Framework 데이터 공급자 클래스의 속성은 SourceVersion 열 값의 Parameter Original, Current 또는 Proposed 버전을 사용할지 여부를 결정합니다. 이 기능은 낙관적 동시성 위반을 검사 위해 UPDATE 문의 WHERE 절에 원래 값을 포함하는 데 자주 사용됩니다.

참고

행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true 호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated 이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgsContinue입니다.

추가 정보

적용 대상