IDataAdapter.Update(DataSet) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
public:
int Update(System::Data::DataSet ^ dataSet);
public int Update (System.Data.DataSet dataSet);
abstract member Update : System.Data.DataSet -> int
Public Function Update (dataSet As DataSet) As Integer
매개 변수
반환
DataSet에서 성공적으로 업데이트된 행의 수를 반환합니다.
예외
INSERT, UPDATE 또는 DELETE 문을 실행한 결과 영향을 받은 레코드가 없는 경우
예제
다음 예제에서는 파생된 클래스 OleDbDataAdapter를 Update 데이터 원본입니다. 이 예에서는 만들었다고 가정를 OleDbDataAdapter 및 DataSet합니다.
static private DataSet CreateCommandAndUpdate(
string connectionString,
string queryString)
{
DataSet dataSet = new DataSet();
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
connection.Open();
OleDbDataAdapter adapter =
new OleDbDataAdapter();
adapter.SelectCommand =
new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder =
new OleDbCommandBuilder(adapter);
adapter.Fill(dataSet);
// Code to modify data in the DataSet here.
// Without the OleDbCommandBuilder, this line would fail.
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.Update(dataSet);
}
return dataSet;
}
Public Function CreateCommandAndUpdate( _
ByVal connectionString As String, _
ByVal queryString As String) As DataSet
Dim dataSet As New DataSet()
Using connection As New OleDbConnection(connectionString)
connection.Open()
Dim adapter As New OleDbDataAdapter()
adapter.SelectCommand = New OleDbCommand( _
queryString, connection)
Dim builder As OleDbCommandBuilder = _
New OleDbCommandBuilder(adapter)
adapter.Fill(dataSet)
' Code to modify the data in the DataSet here.
' Without the OleDbCommandBuilder this line would fail.
builder.GetUpdateCommand()
adapter.Update(dataSet)
End Using
Return dataSet
End Function
설명
애플리케이션 호출 하는 경우는 Update 메서드를 IDataAdapter 검사를 RowState 속성 합니다 에서구성된인덱스순서에따라각행에대해반복적으로필요한INSERT,UPDATE또는DELETE문을실행하고DataSet. 예를 들어 Update 의 행 순서 때문에 그 다음에 INSERT 문이 DELETE 문의 하 고 다른 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, 실행 순서는 다음과 같습니다.
값을 DataRow 매개 변수 값으로 이동 됩니다.
OnRowUpdating 이벤트가 발생합니다.
명령을 실행합니다.
명령으로 설정 되어 있으면
FirstReturnedRecord
, 첫 번째 반환 결과에 배치 되는 DataRow합니다.에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.
OnRowUpdated 이벤트가 발생합니다.
AcceptChanges을 호출합니다.
와 연결 된 각 명령을 IDataAdapter 일반적으로 연결 된 매개 변수 컬렉션을 포함 합니다. 매개 변수를 통해 현재 행에 매핑되는 SourceColumn
및 SourceVersion
.NET Framework 데이터 공급자의 속성 Parameter
클래스입니다.
SourceColumn
참조를 DataTable 열은는 IDataAdapter 현재 행에 대 한 매개 변수 값을 가져오기에 대 한 참조입니다.
SourceColumn
테이블 매핑을 적용 하려면 먼저 매핑되지 않은 열 이름으로 참조 합니다. 하는 경우 SourceColumn
참조를 존재 하지 않는 열에 수행 되는 동작에 따라 달라 집니다 다음 중 하나 MissingMappingAction 값입니다.
열거 값 | 수행한 작업 |
---|---|
MissingMappingAction.Passthrough |
원본 열 이름 및 테이블 이름을 사용 하 여는 DataSet 매핑이 있는 경우. |
MissingMappingAction.Ignore |
SystemException 생성 됩니다. 매핑을 명시적으로 설정 하는 경우 오류가 발생 하 여 입력된 매개 변수의 매핑이 없을 일반적 원인입니다. |
MissingMappingAction.Error |
SystemException 생성 됩니다. |
합니다 SourceColumn
속성은 또한 출력에 대 한 값을 매핑할 사용 또는 입/출력 매개 변수를는 DataSet
합니다. 존재 하지 않는 열을 참조 하는 경우 예외가 생성 됩니다.
SourceVersion
.NET Framework 데이터 공급자의 속성 Parameter
클래스를 사용할지 여부를 결정 합니다 Original
, Current
, 또는 Proposed
열 값의 버전입니다. 이 기능은 낙관적 동시성 위반을 검사 하는 UPDATE 문의 WHERE 절에 원래 값을 포함 하도록 자주 사용 됩니다.
참고
행을 업데이트 하는 동안 오류가 발생 하는 경우 예외가 throw 되 고 업데이트의 실행이 중단 되었습니다. 오류가 발생 하는 경우 예외를 생성 하지 않고 업데이트 작업을 계속 하려면 설정 합니다 ContinueUpdateOnError 속성을 true
호출 하기 전에 Update입니다. 내에서 행당 별로 오류에 응답할 수도 있습니다는 RowUpdated
DataAdapter의 이벤트입니다. 내에서 예외를 생성 하지 않고 업데이트 작업을 계속 하려면를 RowUpdated
이벤트를 설정 합니다 Status 의 속성을 RowUpdatedEventArgs 를 Continue입니다.
적용 대상
.NET