C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.56366 の関連記事表示

<< 0 >>
■56366  DataAdapterを使用した場合のTransaction
□投稿者/ bagabond -(2011/01/12(Wed) 00:21:03)

    分類:[VB.NET/VB2005 以降] 

    VB2008とSQL Server2008の環境でSqlDataAdapterを使用してデータの更新を行っていますが、Transactionでエラーになります。
    以下の例でTransactionのBeginTransactionをoAdapter.InsertCommand = ・・・の後にもってくれば、エラーは無くなりますが、複数のテーブルをひとつのTransactionで処理できなくなります。どなたかご教授をお願いします。

    Using connection As New SqlClient.SqlConnection(接続文字列)

        Dim oTrans As SqlClient.SqlTransaction = connection.BeginTransaction  <- この処理をしなけらばエラーは起こらない

        Dim oAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQL文,connection)
    Dim oBuilder As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(oAdapter)

    oAdapter.InserCommand = oBuilder.GetInserCommand() <- エラー「コマンドのTransactionプロパティが初期化されていない」
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56367  Re[1]: DataAdapterを使用した場合のTransaction
□投稿者/ shu -(2011/01/12(Wed) 07:41:17)
    2011/01/12(Wed) 08:19:06 編集(投稿者)
    2011/01/12(Wed) 08:18:18 編集(投稿者)

    No56366 (bagabond さん) に返信

    > oAdapter.InserCommand = oBuilder.GetInserCommand() <- エラー「コマンドのTransactionプロパテ

    この後に
    oAdapter.InsertCommand.Transaction = oTrans
    が必要です。
記事No.56366 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56399  Re[2]: DataAdapterを使用した場合のTransaction
□投稿者/ bagabond -(2011/01/12(Wed) 23:14:51)
    No56367 (shu さん) に返信
    shuさん、ご返事ありがとうございます。
    ご指摘の方法ではありませんが、マイクロソフトのオンラインサポートの記事を参考にして、プログラミングしたら、正常に動作しました。
    http://support.microsoft.com/kb/310351/ja
    データセットに追加、変更、削除の処理がされている場合は、コマンドビルダーでデータアダプターにInsertCommand,UpdateCommand,DeleteCommandを設定する必要は無いようです。


    'データセットに追加、変更、削除が加えられている。
    Using connection As New SqlClient.SqlConnection(接続文字列)
    Dim oTrans As SqlClient.SqlTransaction = connection.BeginTransaction
    Dim oAdapter As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQL文,connection)
    Dim oBuilder As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(oAdapter)

    oAdapter.SelectCommand.Transaction = oTrans
    oAdapter.Update(データセット、テーブル)
    oTrans.Commit()



記事No.56366 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56400  Re[3]: DataAdapterを使用した場合のTransaction
□投稿者/ なちゃ -(2011/01/12(Wed) 23:20:03)
    SQL Server 2008 と .NET Framework 2.0 SP1 以降であれば、
    System.Transactions.TransactionScope
    を使う方法をおすすめします。
記事No.56366 のレス /過去ログ94より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -