Windows アプリケーションでDBを更新してみよう(VS2005 TableAdapter 編)
Windows アプリケーションでDBのデータを表示しよう(VS2005 TableAdapter 編)をちょっと改造して
データの更新をしてみましょう。
※解説に用いた Visual Studio 2005 の Edition は、Team System Edition です。
サンプルのダウンロード
■Form 上のコントロールをいじる
Form1 をデザイナで開くと↓こんなんでしたよね。

今回は画面レイアウトは変更せず、[保存]っぽい画像ボタンがあるので、そいつを使おうと思います。
上の図の赤枠の部分をデザイナ上で、ダブルクリックして下さい。
■コードを入力
Form1.vb を見てみましょう。たったコレだけです。
■Form 上のコントロールをいじるで、保存ボタンをダブルクリックしたことによって、
生成されたイベントハンドラの中身のコードを、追記してみます。
※ TransactionScope を利用するには、System.Transactions を参照設定に入れる必要があります。
※ TransactionScope を利用したアプリケーションを Windows XP SP2 で実行した時、以下のメッセージが出ることがあります。
「分散トランザクション マネージャ (MSDTC) のネットワーク アクセスは無効になっています。 コンポーネント サービス管理ツールを使用して、MSDTC のセキュリティ構成でネットワーク アクセスの DTC を有効にしてください。」
回避方法はこちらです。
TransactionManagerCommunicationException using TransactionScope
コントロールパネル → 管理ツール → コンポーネント サービスを開く。
コンソール ルート → コンポーネント サービス → コンピュータ → マイ コンピュータを選択。
その状態で、右クリックして、プロパティをクリック。
マイ コンピュータ のプロパティ画面で、MSDTC タブを開く。
MSDTC タブの [セキュリティの構成] ボタンを押下。
[ネットワーク DTC アクセス]にチェック。
クライアント及び管理の [リモート クライアントを許可する]と[リモート管理を許可する]にチェック。
トランザクション マネージャ通信の [受信を許可する]と[送信を許可する]にチェック。
その下のラジオボタンは、[認証を必要としない]を選択。
[XA トランザクションを有効にする]をチェック。
再起動せよ。と書いてあります。
また、このような KB もあります。
Windows Server 2003 または Windows XP Service Pack 2 のインストール後、リンク サーバーに対して分散トランザクションを実行すると SQL Server 2000 でエラー メッセージ 7391 が表示される
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: このコード行はデータを 'CustomersDataset.Customers' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.CustomersTableAdapter.Fill(Me.CustomersDataset.Customers) End Sub Private Sub CustomersBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CustomersBindingNavigatorSaveItem.Click Using tran As New System.Transactions.TransactionScope Me.CustomersTableAdapter.Update(Me.CustomersDataset.Customers) tran.Complete() End Using End Sub End Class
■デバッグ実行!
コードの入力が終わったら、メニューバーの[デバッグ]→[デバッグ実行]をクリックしましょう。

この状態で、SQL Server のデータをクエリアナライザで見てみます。

次に、自分の作成したプログラムで 1 行目のデータを以下の様に編集します。

保存ボタンを押下した後、再びクエリアナライザで SQL Server のデータを見てみます。

おっ。ちゃんと変わってますね。
確認できたら画面右上の×ボタンをクリックしてプログラムを終了させて下さい。