DbDataAdapter.Updateとは? わかりやすく解説

DbDataAdapter.Update メソッド (DataRow[], DataTableMapping)

指定した DataRow オブジェクト配列内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。

名前空間: System.Data.Common
アセンブリ: System.Data (system.data.dll 内)
構文構文

Protected Overridable Function
 Update ( _
    dataRows As DataRow(), _
    tableMapping As DataTableMapping _
) As Integer
Dim dataRows As DataRow()
Dim tableMapping As DataTableMapping
Dim returnValue As Integer

returnValue = Me.Update(dataRows, tableMapping)
protected virtual int Update (
    DataRow[] dataRows,
    DataTableMapping tableMapping
)
protected:
virtual int Update (
    array<DataRow^>^ dataRows, 
    DataTableMapping^ tableMapping
)
protected int Update (
    DataRow[] dataRows, 
    DataTableMapping tableMapping
)
protected function Update (
    dataRows : DataRow[], 
    tableMapping : DataTableMapping
) : int

パラメータ

dataRows

データ ソース更新使用する DataRow オブジェクト配列

tableMapping

使用する TableMappings コレクション

戻り値
DataSet 内で正常に更新された行の数。

例外例外
例外種類条件

ArgumentNullException

DataSet無効です。

InvalidOperationException

ソース テーブル無効です。

SystemException

更新する DataRow存在しません。

または

更新する DataTable が存在しません。

または

ソースとして使用する DataSet存在しません。

DBConcurrencyException

INSERT ステートメントUPDATE ステートメント、または DELETE ステートメント実行しようとしましたが、影響受けたレコードはありませんでした

解説解説

アプリケーションUpdate メソッド呼び出すと、DbDataAdapter は、RowState プロパティ調べDataSet設定されているインデックス順序基づいて要求されINSERTUPDATE、または DELETE ステートメント各行に対して反復的に実行します。たとえば、Update呼び出されたときに、DataTable 内の行の順序に応じてDELETE ステートメント実行しINSERT ステートメント実行してから、別の DELETE ステートメント実行することなどがあります

これらのステートメントバッチ処理として実行されるのではない点に注意してください各行個別更新されます。UPDATE前に INSERT実行するなど、ステートメント種類シーケンス制御する必要がある場合は、アプリケーションから GetChanges メソッド呼び出すことができます詳細については、「DataAdapter によるデータ ソース更新」を参照してください

INSERTUPDATE または DELETE ステートメント指定されていない場合Update メソッドでは、例外生成されます。ただし、.NET Framework データ プロバイダSelectCommand プロパティ設定した場合は、単一テーブル更新する SQL ステートメント自動的に生成する SqlCommandBuilder または OleDbCommandBuilder オブジェクト作成できます。これによって、追加SQL ステートメントが、CommandBuilder によって自動的に生成されます。この生成ロジックでは、DataSet 内にキー情報存在している必要があります詳細については、「コマンド自動生成」を参照してください

Update メソッドは、更新実行前の最初マップ示されテーブルら行取得します次に Update は、UpdatedRowSource プロパティの値を使用して行を更新します返され追加の行はすべて無視されます。

DataSetデータ戻されるたびに、OnRowUpdated イベント発生します。これによって、ユーザーは、DataSet調整済みの行、およびコマンドによって返され出力パラメータ検査できます。行が正常に更新されると、その行に対す変更受け入れられます。

Update使用するときは、次の順序で処理が実行されます。

  1. DataRow 内の値が、パラメータ値に移動されます。

  2. OnRowUpdating イベント発生します

  3. コマンド実行されます。

  4. コマンドFirstReturnedRecord設定されている場合は、最初に返され結果DataRow格納されます。

  5. 出力パラメータがある場合は、それが DataRow格納されます。

  6. OnRowUpdated イベント発生します

  7. AcceptChanges が呼び出されます。

DbDataAdapter関連付けられた各コマンドには、通常パラメータ コレクション関連付けられています。パラメータは、.NET Framework データ プロバイダParameter クラスSourceColumn プロパティおよび SourceVersion プロパティ通じて現在の行に割り当てられます。SourceColumn は、DbDataAdapter現在の行のパラメータ値を取得するために参照する DataTable 列を参照します。

テーブル マップ適用される前は、SourceColumn は、割り当てられていない列名を参照します。SourceColumn参照している列が存在しない場合は、MissingMappingAction 値に応じて次のアクション実行されます。

列挙

アクション

MissingMappingAction.Passthrough

マップ存在しない場合は、DataSet 内のソース列名およびテーブル名が使用されます。

MissingMappingAction.Ignore

SystemException生成されます。マップ明示的に設定され場合入力パラメータに関してマップ存在しないときは、通常エラーなります

MissingMappingAction.Error

SystemException生成されます。

SourceColumn プロパティは、マップ通じて出力パラメータまたは入出力パラメータの値を DataSet に戻すときにも使用されます。プロパティが、存在しない列を参照している場合は、例外生成されます。

.NET Framework データ プロバイダParameter クラスSourceVersion プロパティは、OriginalCurrent、または Proposed のどのバージョンの列値を使用するかを指定します。この機能は、UPDATE ステートメントWHERE 句に元の値を含めてオプティミスティック同時実行違反チェックするためによく使用されます。

メモメモ

行の更新時にエラーが発生した場合は、例外スローされ、更新実行中断されます。エラー発生して例外生成せずに更新操作続けるには、Update呼び出す前に、ContinueUpdateOnError プロパティtrue設定します。DataAdapter の RowUpdated イベント内で、行単位エラー対応することもできますRowUpdated イベント内で例外生成せずに更新操作続けるには、RowUpdatedEventArgs の Status プロパティContinue設定します

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間

DbDataAdapter.Update メソッド (DataRow[])

指定した DataRow オブジェクト配列内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。

名前空間: System.Data.Common
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Function Update ( _
    dataRows As DataRow() _
) As Integer
Dim instance As DbDataAdapter
Dim dataRows As DataRow()
Dim returnValue As Integer

returnValue = instance.Update(dataRows)
public int Update (
    DataRow[] dataRows
)
public:
int Update (
    array<DataRow^>^ dataRows
)
public int Update (
    DataRow[] dataRows
)
public function Update (
    dataRows : DataRow[]
) : int

パラメータ

dataRows

データ ソース更新使用する DataRow オブジェクト配列

戻り値
DataSet 内で正常に更新された行の数。

例外例外
例外種類条件

ArgumentNullException

DataSet無効です。

InvalidOperationException

ソース テーブル無効です。

SystemException

更新する DataRow存在しません。

または

更新する DataTable が存在しません。

または

ソースとして使用する DataSet存在しません。

DBConcurrencyException

INSERT ステートメントUPDATE ステートメント、または DELETE ステートメント実行しようとしましたが、影響受けたレコードはありませんでした

解説解説

アプリケーションUpdate メソッド呼び出すと、DbDataAdapter は、RowState プロパティ調べDataSet設定されているインデックス順序基づいて要求されINSERTUPDATE、または DELETE ステートメント各行に対して反復的に実行します。たとえば、Update呼び出されたときに、DataTable 内の行の順序に応じてDELETE ステートメント実行しINSERT ステートメント実行してから、別の DELETE ステートメント実行することなどがあります

これらのステートメントバッチ処理として実行されるのではない点に注意してください各行個別更新されます。UPDATE前に INSERT実行するなど、ステートメント種類シーケンス制御する必要がある場合は、アプリケーションから GetChanges メソッド呼び出すことができます詳細については、「DataAdapter によるデータ ソース更新」を参照してください

INSERTUPDATE または DELETE ステートメント指定されていない場合Update メソッドでは、例外生成されます。ただし、.NET Framework データ プロバイダSelectCommand プロパティ設定した場合は、単一テーブル更新する SQL ステートメント自動的に生成する SqlCommandBuilder または OleDbCommandBuilder オブジェクト作成できます。これによって、追加SQL ステートメントが、CommandBuilder によって自動的に生成されます。この生成ロジックでは、DataSet 内にキー情報存在している必要があります詳細については、「コマンド自動生成」を参照してください

Update メソッドは、更新実行前の最初マップ示されテーブルら行取得します次に Update は、UpdatedRowSource プロパティの値を使用して行を更新します返され追加の行はすべて無視されます。

DataSetデータ戻されるたびに、OnRowUpdated イベント発生します。これによって、ユーザーは、DataSet調整済みの行、およびコマンドによって返され出力パラメータ検査できます。行が正常に更新されると、その行に対す変更受け入れられます。

Update使用するときは、次の順序で処理が実行されます。

  1. DataRow 内の値が、パラメータ値に移動されます。

  2. OnRowUpdating イベント発生します

  3. コマンド実行されます。

  4. コマンドFirstReturnedRecord設定されている場合は、最初に返され結果DataRow格納されます。

  5. 出力パラメータがある場合は、それが DataRow格納されます。

  6. OnRowUpdated イベント発生します

  7. AcceptChanges が呼び出されます。

DbDataAdapter関連付けられた各コマンドには、通常パラメータ コレクション関連付けられています。パラメータは、.NET Framework データ プロバイダParameter クラスSourceColumn プロパティおよび SourceVersion プロパティ通じて現在の行に割り当てられます。SourceColumn は、DbDataAdapter現在の行のパラメータ値を取得するために参照する DataTable 列を参照します。

テーブル マップ適用される前は、SourceColumn は、割り当てられていない列名を参照します。SourceColumn参照している列が存在しない場合は、MissingMappingAction 値に応じて次のアクション実行されます。

列挙

アクション

MissingMappingAction.Passthrough

マップ存在しない場合は、DataSet 内のソース列名およびテーブル名が使用されます。

MissingMappingAction.Ignore

SystemException生成されます。マップ明示的に設定され場合入力パラメータに関してマップ存在しないときは、通常エラーなります

MissingMappingAction.Error

SystemException生成されます。

SourceColumn プロパティは、マップ通じて出力パラメータまたは入出力パラメータの値を DataSet に戻すときにも使用されます。プロパティが、存在しない列を参照している場合は、例外生成されます。

.NET Framework データ プロバイダParameter クラスSourceVersion プロパティは、OriginalCurrent、または Proposed のどのバージョンの列値を使用するかを指定します。この機能は、UPDATE ステートメントWHERE 句に元の値を含めてオプティミスティック同時実行違反チェックするためによく使用されます。

メモメモ

行の更新時にエラーが発生した場合は、例外スローされ、更新実行中断されます。エラー発生して例外生成せずに更新操作続けるには、Update呼び出す前に、ContinueUpdateOnError プロパティtrue設定します。DataAdapter の RowUpdated イベント内で、行単位エラー対応することもできますRowUpdated イベント内で例外生成せずに更新操作続けるには、RowUpdatedEventArgs の Status プロパティContinue設定します

使用例使用例

OleDbDataAdapter 派生クラス使用してデータ ソース更新する例を次に示します

Public Function CreateCmdsAndUpdate(ByVal
 dataSet As DataSet, _
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 OleDbCommandBuilder
 = New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As DataSet = 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
public DataSet CreateCmdsAndUpdate(DataSet dataSet, 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;
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間

DbDataAdapter.Update メソッド (DataSet, String)

指定した DataTable 名を使用してDataSet 内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。

名前空間: System.Data.Common
アセンブリ: System.Data (system.data.dll 内)
構文構文

例外例外
解説解説

アプリケーションUpdate メソッド呼び出すと、DbDataAdapter は、RowState プロパティ調べDataSet設定されているインデックス順序基づいて要求されINSERTUPDATE、または DELETE ステートメント各行に対して反復的に実行します。たとえば、Update呼び出されたときに、DataTable 内の行の順序に応じてDELETE ステートメント実行しINSERT ステートメント実行してから、別の DELETE ステートメント実行することなどがあります

これらのステートメントバッチ処理として実行されるのではない点に注意してください各行個別更新されます。UPDATE前に INSERT実行するなど、ステートメント種類シーケンス制御する必要がある場合は、アプリケーションから GetChanges メソッド呼び出すことができます詳細については、「DataAdapter によるデータ ソース更新」を参照してください

INSERTUPDATE または DELETE ステートメント指定されていない場合Update メソッドでは、例外生成されます。ただし、.NET Framework データ プロバイダSelectCommand プロパティ設定した場合は、単一テーブル更新する SQL ステートメント自動的に生成する SqlCommandBuilder または OleDbCommandBuilder オブジェクト作成できます。これによって、追加SQL ステートメントが、CommandBuilder によって自動的に生成されます。この生成ロジックでは、DataSet 内にキー情報存在している必要があります詳細については、「コマンド自動生成」を参照してください

Update メソッドは、大文字と小文字の違いを除いて名前が一致する DataTable オブジェクトDataSet 内に複数含まれる場合に、それらを区別します。このようなテーブルDataSet 内に複数存在する場合Update は、大文字と小文字区別して比較実行し対応するテーブルを見つけます正確に一致するテーブル存在しない場合は、例外生成します。この動作を表す 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.

Update呼び出したときに、大文字と小文字の違いを除いて名前が一致する DataTableDataSet 内に 1 つだけ含まれている場合は、その 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関連付けられた各コマンドには、通常パラメータ コレクション関連付けられています。パラメータは、.NET Framework データ プロバイダParameter クラスSourceColumn プロパティおよび SourceVersion プロパティ通じて現在の行に割り当てられます。SourceColumn は、DbDataAdapter現在の行のパラメータ値を取得するために参照する DataTable 列を参照します。

テーブル マップ適用される前は、SourceColumn は、割り当てられていない列名を参照します。SourceColumn参照している列が存在しない場合は、MissingMappingAction 値に応じて次のアクション実行されます。

列挙

アクション

MissingMappingAction.Passthrough

マップ存在しない場合は、DataSet 内のソース列名およびテーブル名が使用されます。

MissingMappingAction.Ignore

SystemException が生成されます。マップ明示的に設定され場合入力パラメータに関してマップ存在しないときは、通常エラーなります

MissingMappingAction.Error

SystemException生成されます。

SourceColumn プロパティは、マップ通じて出力パラメータまたは入出力パラメータの値を DataSet に戻すときにも使用されます。プロパティが、存在しない列を参照している場合は、例外生成されます。

.NET Framework データ プロバイダParameter クラスSourceVersion プロパティは、OriginalCurrent、または Proposed のどのバージョンの列値を使用するかを指定します。この機能は、UPDATE ステートメントWHERE 句に元の値を含めてオプティミスティック同時実行違反チェックするためによく使用されます。

メモメモ

行の更新時にエラーが発生した場合は、例外スローされ、更新実行中断されます。エラー発生して例外生成せずに更新操作続けるには、Update呼び出す前に、ContinueUpdateOnError プロパティtrue設定します。DataAdapter の RowUpdated イベント内で、行単位エラー対応することもできますRowUpdated イベント内で例外生成せずに更新操作続けるには、RowUpdatedEventArgs の Status プロパティContinue設定します

使用例使用例

OleDbDataAdapter 派生クラス使用してデータ ソース更新する例を次に示します

Public Function CreateCmdsAndUpdate(ByVal
 dataSet As DataSet, _
    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 OleDbCommandBuilder
 = New OleDbCommandBuilder(adapter)

        connection.Open()

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

        ' Code to modify data in DataSet here 

        adapter.Update(customers, tableName)

        Return customers
    End Using
End Function
public DataSet CreateCmdsAndUpdate(DataSet dataSet, 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;
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間

DbDataAdapter.Update メソッド (DataSet)

指定した DataSet 内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。

名前空間: System.Data.Common
アセンブリ: System.Data (system.data.dll 内)
構文構文

例外例外
解説解説

アプリケーションUpdate メソッド呼び出すと、DbDataAdapter は、RowState プロパティ調べDataSet設定されているインデックス順序基づいて要求されINSERTUPDATE、または DELETE ステートメント各行に対して反復的に実行します。たとえば、Update呼び出されたときに、DataTable 内の行の順序に応じてDELETE ステートメント実行しINSERT ステートメント実行してから、別の DELETE ステートメント実行することなどがあります

これらのステートメントバッチ処理として実行されるのではない点に注意してください各行個別更新されます。UPDATE前に INSERT実行するなど、ステートメント種類シーケンス制御する必要がある場合は、アプリケーションから GetChanges メソッド呼び出すことができます詳細については、「DataAdapter によるデータ ソース更新」を参照してください

INSERTUPDATE または DELETE ステートメント指定されていない場合Update メソッドでは、例外生成されます。ただし、.NET Framework データ プロバイダSelectCommand プロパティ設定した場合は、単一テーブル更新する SQL ステートメント自動的に生成する SqlCommandBuilder または OleDbCommandBuilder オブジェクト作成できます。これによって、追加SQL ステートメントが、CommandBuilder によって自動的に生成されます。この生成ロジックでは、DataSet 内にキー情報存在している必要があります詳細については、「コマンド自動生成」を参照してください

Update メソッドは、更新実行前の最初マップ示されテーブルら行取得します次に Update は、UpdatedRowSource プロパティの値を使用して行を更新します返され追加の行はすべて無視されます。

DataSetデータ戻されるたびに、OnRowUpdated イベント発生します。これによって、ユーザーは、DataSet調整済みの行、およびコマンドによって返され出力パラメータ検査できます。行が正常に更新されると、その行に対す変更受け入れられます。

Update使用するときは、次の順序で処理が実行されます。

  1. DataRow 内の値が、パラメータ値に移動されます。

  2. OnRowUpdating イベント発生します

  3. コマンド実行されます。

  4. コマンドFirstReturnedRecord設定されている場合は、最初に返され結果DataRow格納されます。

  5. 出力パラメータがある場合は、それが DataRow格納されます。

  6. OnRowUpdated イベント発生します

  7. AcceptChanges が呼び出されます。

DbDataAdapter関連付けられた各コマンドには、通常パラメータ コレクション関連付けられています。パラメータは、.NET Framework データ プロバイダParameter クラスSourceColumn プロパティおよび SourceVersion プロパティ通じて現在の行に割り当てられます。SourceColumn は、DbDataAdapter現在の行のパラメータ値を取得するために参照する DataTable 列を参照します。

テーブル マップ適用される前は、SourceColumn は、割り当てられていない列名を参照します。SourceColumn参照している列が存在しない場合は、MissingMappingAction 値に応じて次のアクション実行されます。

列挙

アクション

MissingMappingAction.Passthrough

マップ存在しない場合は、DataSet 内のソース列名およびテーブル名が使用されます。

MissingMappingAction.Ignore

SystemException が生成されます。マップ明示的に設定され場合入力パラメータに関してマップ存在しないときは、通常エラーなります

MissingMappingAction.Error

SystemException生成されます。

SourceColumn プロパティは、マップ通じて出力パラメータまたは入出力パラメータの値を DataSet に戻すときにも使用されます。プロパティが、存在しない列を参照している場合は、例外生成されます。

.NET Framework データ プロバイダParameter クラスSourceVersion プロパティは、OriginalCurrent、または Proposed のどのバージョンの列値を使用するかを指定します。この機能は、UPDATE ステートメントWHERE 句に元の値を含めてオプティミスティック同時実行違反チェックするためによく使用されます。

メモメモ

行の更新時にエラーが発生した場合は、例外スローされ、更新実行中断されます。エラー発生して例外生成せずに更新操作続けるには、Update呼び出す前に、ContinueUpdateOnError プロパティtrue設定します。DataAdapter の RowUpdated イベント内で、行単位エラー対応することもできますRowUpdated イベント内で例外生成せずに更新操作続けるには、RowUpdatedEventArgs の Status プロパティContinue設定します

使用例使用例

OleDbDataAdapter 派生クラス使用してデータ ソース更新する例を次に示します

Public Function CreateCmdsAndUpdate(ByVal
 dataSet As DataSet, _
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 OleDbCommandBuilder
 = New OleDbCommandBuilder(adapter)

        connection.Open()

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

        ' Code to modify data in DataSet here 

        adapter.Update(customers)

        Return customers
    End Using
End Function
public DataSet CreateCmdsAndUpdate(DataSet dataSet, 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;
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間

DbDataAdapter.Update メソッド

DataSet 内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。
オーバーロードの一覧オーバーロードの一覧

参照参照

関連項目

DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間

DbDataAdapter.Update メソッド (DataTable)

指定した DataTable 内の挿入行、更新行、または削除に対してINSERTUPDATE、または DELETE ステートメント個別呼び出します。

名前空間: System.Data.Common
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Function Update ( _
    dataTable As DataTable _
) As Integer
Dim instance As DbDataAdapter
Dim dataTable As DataTable
Dim returnValue As Integer

returnValue = instance.Update(dataTable)
public int Update (
    DataTable dataTable
)
public:
int Update (
    DataTable^ dataTable
)
public int Update (
    DataTable dataTable
)
public function Update (
    dataTable : DataTable
) : int

パラメータ

dataTable

データ ソース更新使用した DataTable。

戻り値
DataSet 内で正常に更新された行の数。

例外例外
例外種類条件

ArgumentNullException

DataSet無効です。

InvalidOperationException

ソース テーブル無効です。

SystemException

更新する DataRow が存在しません。

または

更新する DataTable存在しません。

または

ソースとして使用する DataSet存在しません。

DBConcurrencyException

INSERT ステートメントUPDATE ステートメント、または DELETE ステートメント実行しようとしましたが、影響受けたレコードはありませんでした

解説解説

アプリケーションUpdate メソッド呼び出すと、DbDataAdapter は、RowState プロパティ調べDataSet設定されているインデックス順序基づいて要求されINSERTUPDATE、または DELETE ステートメント各行に対して反復的に実行します。たとえば、Update呼び出されたときに、DataTable 内の行の順序に応じてDELETE ステートメント実行しINSERT ステートメント実行してから、別の DELETE ステートメント実行することなどがあります

これらのステートメントバッチ処理として実行されるのではない点に注意してください各行個別更新されます。UPDATE前に INSERT実行するなど、ステートメント種類シーケンス制御する必要がある場合は、アプリケーションから GetChanges メソッド呼び出すことができます詳細については、「DataAdapter によるデータ ソース更新」を参照してください

INSERTUPDATE または DELETE ステートメント指定されていない場合Update メソッドでは、例外生成されます。ただし、.NET Framework データ プロバイダSelectCommand プロパティ設定した場合は、単一テーブル更新する SQL ステートメント自動的に生成する SqlCommandBuilder または OleDbCommandBuilder オブジェクト作成できます。これによって、追加SQL ステートメントが、CommandBuilder によって自動的に生成されます。この生成ロジックでは、DataSet 内にキー情報存在している必要があります詳細については、「コマンド自動生成」を参照してください

Update メソッドは、更新実行前の最初マップ示されテーブルら行取得します次に Update は、UpdatedRowSource プロパティの値を使用して行を更新します返され追加の行はすべて無視されます。

DataSetデータ戻されるたびに、OnRowUpdated イベント発生します。これによって、ユーザーは、DataSet調整済みの行、およびコマンドによって返され出力パラメータ検査できます。行が正常に更新されると、その行に対す変更受け入れられます。

Update使用するときは、次の順序で処理が実行されます。

  1. DataRow 内の値が、パラメータ値に移動されます。

  2. OnRowUpdating イベント発生します

  3. コマンド実行されます。

  4. コマンドFirstReturnedRecord設定されている場合は、最初に返され結果DataRow格納されます。

  5. 出力パラメータがある場合は、それが DataRow格納されます。

  6. OnRowUpdated イベント発生します

  7. AcceptChanges が呼び出されます。

DbDataAdapter関連付けられた各コマンドには、通常パラメータ コレクション関連付けられています。パラメータは、.NET Framework データ プロバイダParameter クラスSourceColumn プロパティおよび SourceVersion プロパティ通じて現在の行に割り当てられます。SourceColumn は、DbDataAdapter現在の行のパラメータ値を取得するために参照する DataTable 列を参照します。

テーブル マップ適用される前は、SourceColumn は、割り当てられていない列名を参照します。SourceColumn参照している列が存在しない場合は、MissingMappingAction 値に応じて次のアクション実行されます。

列挙

アクション

MissingMappingAction.Passthrough

マップ存在しない場合は、DataSet 内のソース列名およびテーブル名が使用されます。

MissingMappingAction.Ignore

SystemException生成されます。マップ明示的に設定され場合入力パラメータに関してマップ存在しないときは、通常エラーなります

MissingMappingAction.Error

SystemException生成されます。

SourceColumn プロパティは、マップ通じて出力パラメータまたは入出力パラメータの値を DataSet に戻すときにも使用されます。プロパティが、存在しない列を参照している場合は、例外生成されます。

.NET Framework データ プロバイダParameter クラスSourceVersion プロパティは、OriginalCurrent、または Proposed のどのバージョンの列値を使用するかを指定します。この機能は、UPDATE ステートメントWHERE 句に元の値を含めてオプティミスティック同時実行違反チェックするためによく使用されます。

メモメモ

行の更新時にエラーが発生した場合は、例外スローされ、更新実行中断されます。エラー発生して例外生成せずに更新操作続けるには、Update呼び出す前に、ContinueUpdateOnError プロパティtrue設定します。DataAdapter の RowUpdated イベント内で、行単位エラー対応することもできますRowUpdated イベント内で例外生成せずに更新操作続けるには、RowUpdatedEventArgs の Status プロパティContinue設定します

使用例使用例

OleDbDataAdapter 派生クラス使用してデータ ソース更新する例を次に示します

Public Function CreateCmdsAndUpdate(ByVal
 dataSet As DataSet, _
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 OleDbCommandBuilder
 = New OleDbCommandBuilder(adapter)

        connection.Open()

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

        ' Code to modify data in DataSet here 

        adapter.Update(customers)
        Return customers
    End Using
End Function
public DataSet CreateCmdsAndUpdate(DataSet dataSet, 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;
    }
}

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DbDataAdapter クラス
DbDataAdapter メンバ
System.Data.Common 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からDbDataAdapter.Updateを検索した結果を表示しています。
Weblioに収録されているすべての辞書からDbDataAdapter.Updateを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDbDataAdapter.Update を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DbDataAdapter.Update」の関連用語

DbDataAdapter.Updateのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DbDataAdapter.Updateのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS