다음을 통해 공유


DbDataAdapter.Update 메서드

정의

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

오버로드

Name Description
Update(DataSet, String)

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

Update(DataRow[], DataTableMapping)

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

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
Source:
DbDataAdapter.cs
Source:
DbDataAdapter.cs

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

public:
 int Update(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataSet dataSet, string srcTable);
public int Update(System.Data.DataSet dataSet, string srcTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataSet * string -> int
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 문을 실행하려고 하면 0개의 레코드가 영향을 받았습니다.

예제

다음 예제에서는 파생 클래스 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 호출할 때 속성을 검사 RowState 하고 각 행에 대해 필요한 INSERT, UPDATE 또는 DELETE 문을 반복적으로 실행합니다DataSet.DbDataAdapter 예를 들어 Update DELETE 문을 실행한 다음 INSERT 문과 다른 DELETE 문을 실행할 수 있습니다 DataTable.

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

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

이 메서드는 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 자별로만 다른 이름 DataTable 만 포함된 경우 Update 업데이트됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 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 사용하여 행을 새로 고칩니다. 반환된 모든 추가 행은 무시됩니다.

데이터가 다시 DataSetOnRowUpdated 로드되면 이벤트가 발생하므로 사용자가 조정된 행과 명령에서 반환된 DataSet 출력 매개 변수를 검사할 수 있습니다. 행이 성공적으로 업데이트되면 해당 행의 변경 내용이 수락됩니다.

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

  1. 해당 값은 DataRow 매개 변수 값으로 이동됩니다.

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

  3. 명령이 실행됩니다.

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

  5. 출력 매개 변수 DataRow가 있는 경우 .

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

  7. AcceptChanges을 호출합니다.

일반적으로 연결된 DbDataAdapter 각 명령에는 연결된 매개 변수 컬렉션이 있습니다. 매개 변수는 .NET Framework 데이터 공급자 Parameter 클래스의 속성 및 SourceVersion 속성을 통해 SourceColumn 현재 행에 매핑됩니다. SourceColumnDataTable 현재 행에 DbDataAdapter 대한 매개 변수 값을 가져오기 위해 참조하는 열을 나타냅니다.

SourceColumn 는 테이블 매핑이 적용되기 전에 매핑되지 않은 열 이름을 나타냅니다. 존재하지 않는 열을 참조하는 경우 SourceColumn 수행되는 작업은 다음 MissingMappingAction 값 중 하나에 따라 달라집니다.

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

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

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

메모

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

추가 정보

적용 대상

Update(DataRow[], DataTableMapping)

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

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

protected:
 virtual int Update(cli::array <System::Data::DataRow ^> ^ dataRows, System::Data::Common::DataTableMapping ^ tableMapping);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
protected virtual int Update(System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
protected virtual int Update(System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataRow[] * System.Data.Common.DataTableMapping -> int
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 문을 실행하려고 하면 0개의 레코드가 영향을 받았습니다.

설명

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

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션은 문 형식의 시퀀스(예: UPDAT 이전의 INSERT)를 제어해야 하는 상황에서 메서드를 호출 GetChanges 할 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.

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

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

데이터가 다시 DataSetOnRowUpdated 로드되면 이벤트가 발생하므로 사용자가 조정된 행과 명령에서 반환된 DataSet 출력 매개 변수를 검사할 수 있습니다. 행이 성공적으로 업데이트되면 해당 행의 변경 내용이 수락됩니다.

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

  1. 해당 값은 DataRow 매개 변수 값으로 이동됩니다.

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

  3. 명령이 실행됩니다.

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

  5. 출력 매개 변수 DataRow가 있는 경우 .

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

  7. AcceptChanges을 호출합니다.

일반적으로 연결된 DbDataAdapter 각 명령에는 연결된 매개 변수 컬렉션이 있습니다. 매개 변수는 .NET Framework 데이터 공급자 Parameter 클래스의 속성 및 SourceVersion 속성을 통해 SourceColumn 현재 행에 매핑됩니다. SourceColumnDataTable 현재 행에 DbDataAdapter 대한 매개 변수 값을 가져오기 위해 참조하는 열을 나타냅니다.

SourceColumn 는 테이블 매핑이 적용되기 전에 매핑되지 않은 열 이름을 나타냅니다. 존재하지 않는 열을 참조하는 경우 SourceColumn 수행되는 작업은 다음 MissingMappingAction 값 중 하나에 따라 달라집니다.

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

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

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

메모

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

추가 정보

적용 대상

Update(DataTable)

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

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

public:
 int Update(System::Data::DataTable ^ dataTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataTable dataTable);
public int Update(System.Data.DataTable dataTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataTable -> int
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 문을 실행하려고 하면 0개의 레코드가 영향을 받았습니다.

예제

다음 예제에서는 파생 클래스 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 호출할 때 속성을 검사 RowState 하고 각 행에 대해 필요한 INSERT, UPDATE 또는 DELETE 문을 반복적으로 실행합니다DataSet.DbDataAdapter 예를 들어 Update DELETE 문을 실행한 다음 INSERT 문과 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션은 문 형식의 시퀀스(예: UPDAT 이전의 INSERT)를 제어해야 하는 상황에서 메서드를 호출 GetChanges 할 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.

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

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

데이터가 다시 DataSetOnRowUpdated 로드되면 이벤트가 발생하므로 사용자가 조정된 행과 명령에서 반환된 DataSet 출력 매개 변수를 검사할 수 있습니다. 행이 성공적으로 업데이트되면 해당 행의 변경 내용이 수락됩니다.

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

  1. 해당 값은 DataRow 매개 변수 값으로 이동됩니다.

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

  3. 명령이 실행됩니다.

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

  5. 출력 매개 변수 DataRow가 있는 경우 .

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

  7. AcceptChanges을 호출합니다.

일반적으로 연결된 DbDataAdapter 각 명령에는 연결된 매개 변수 컬렉션이 있습니다. 매개 변수는 .NET Framework 데이터 공급자 Parameter 클래스의 속성 및 SourceVersion 속성을 통해 SourceColumn 현재 행에 매핑됩니다. SourceColumnDataTable 현재 행에 DbDataAdapter 대한 매개 변수 값을 가져오기 위해 참조하는 열을 나타냅니다.

SourceColumn 는 테이블 매핑이 적용되기 전에 매핑되지 않은 열 이름을 나타냅니다. 존재하지 않는 열을 참조하는 경우 SourceColumn 수행되는 작업은 다음 MissingMappingAction 값 중 하나에 따라 달라집니다.

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

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

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

메모

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

추가 정보

적용 대상

Update(DataSet)

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

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

public:
 override int Update(System::Data::DataSet ^ dataSet);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public override int Update(System.Data.DataSet dataSet);
public override int Update(System.Data.DataSet dataSet);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataSet -> int
override this.Update : System.Data.DataSet -> int
Public Overrides Function Update (dataSet As DataSet) As Integer

매개 변수

dataSet
DataSet

DataSet 데이터 원본을 업데이트하는 데 사용되는 값입니다.

반환

에서 성공적으로 업데이트된 행 수 DataSet입니다.

구현

특성

예외

원본 테이블이 잘못되었습니다.

INSERT, UPDATE 또는 DELETE 문을 실행하려고 하면 0개의 레코드가 영향을 받았습니다.

예제

다음 예제에서는 파생 클래스 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 호출할 때 속성을 검사 RowState 하고 각 행에 대해 필요한 INSERT, UPDATE 또는 DELETE 문을 반복적으로 실행합니다DataSet.DbDataAdapter 예를 들어 Update DELETE 문을 실행한 다음 INSERT 문과 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션은 문 형식의 시퀀스(예: UPDAT 이전의 INSERT)를 제어해야 하는 상황에서 메서드를 호출 GetChanges 할 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.

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

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

데이터가 다시 DataSetOnRowUpdated 로드되면 이벤트가 발생하므로 사용자가 조정된 행과 명령에서 반환된 DataSet 출력 매개 변수를 검사할 수 있습니다. 행이 성공적으로 업데이트되면 해당 행의 변경 내용이 수락됩니다.

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

  1. 해당 값은 DataRow 매개 변수 값으로 이동됩니다.

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

  3. 명령이 실행됩니다.

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

  5. 출력 매개 변수 DataRow가 있는 경우 .

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

  7. AcceptChanges을 호출합니다.

일반적으로 연결된 DbDataAdapter 각 명령에는 연결된 매개 변수 컬렉션이 있습니다. 매개 변수는 .NET Framework 데이터 공급자 Parameter 클래스의 속성 및 SourceVersion 속성을 통해 SourceColumn 현재 행에 매핑됩니다. SourceColumnDataTable 현재 행에 DbDataAdapter 대한 매개 변수 값을 가져오기 위해 참조하는 열을 나타냅니다.

SourceColumn 는 테이블 매핑이 적용되기 전에 매핑되지 않은 열 이름을 나타냅니다. 존재하지 않는 열을 참조하는 경우 SourceColumn 수행되는 작업은 다음 MissingMappingAction 값 중 하나에 따라 달라집니다.

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

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

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

메모

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

추가 정보

적용 대상

Update(DataRow[])

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

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

public:
 int Update(cli::array <System::Data::DataRow ^> ^ dataRows);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataRow[] dataRows);
public int Update(System.Data.DataRow[] dataRows);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataRow[] -> int
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 문을 실행하려고 하면 0개의 레코드가 영향을 받았습니다.

예제

다음 예제에서는 파생 클래스 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 호출할 때 속성을 검사 RowState 하고 각 행에 대해 필요한 INSERT, UPDATE 또는 DELETE 문을 반복적으로 실행합니다DataSet.DbDataAdapter 예를 들어 Update DELETE 문을 실행한 다음 INSERT 문과 다른 DELETE 문을 실행할 수 있습니다 DataTable.

이러한 문은 일괄 처리 프로세스로 수행되지 않습니다. 각 행은 개별적으로 업데이트됩니다. 애플리케이션은 문 형식의 시퀀스(예: UPDAT 이전의 INSERT)를 제어해야 하는 상황에서 메서드를 호출 GetChanges 할 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.

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

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

데이터가 다시 DataSetOnRowUpdated 로드되면 이벤트가 발생하므로 사용자가 조정된 행과 명령에서 반환된 DataSet 출력 매개 변수를 검사할 수 있습니다. 행이 성공적으로 업데이트되면 해당 행의 변경 내용이 수락됩니다.

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

  1. 해당 값은 DataRow 매개 변수 값으로 이동됩니다.

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

  3. 명령이 실행됩니다.

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

  5. 출력 매개 변수 DataRow가 있는 경우 .

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

  7. AcceptChanges을 호출합니다.

일반적으로 연결된 DbDataAdapter 각 명령에는 연결된 매개 변수 컬렉션이 있습니다. 매개 변수는 .NET Framework 데이터 공급자 Parameter 클래스의 속성 및 SourceVersion 속성을 통해 SourceColumn 현재 행에 매핑됩니다. SourceColumnDataTable 현재 행에 DbDataAdapter 대한 매개 변수 값을 가져오기 위해 참조하는 열을 나타냅니다.

SourceColumn 는 테이블 매핑이 적용되기 전에 매핑되지 않은 열 이름을 나타냅니다. 존재하지 않는 열을 참조하는 경우 SourceColumn 수행되는 작업은 다음 MissingMappingAction 값 중 하나에 따라 달라집니다.

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

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

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

메모

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

추가 정보

적용 대상