Document

TableAdapterとSQLDependency
便利さを使い倒そう。
by えムナウ
わんくま同盟 大阪#2 & 東京#1 合同勉強会
TableAdapterで何が出来るか
• ウィザードで接続やSQL文を自動作成して
データベースのテーブルからデータを
SELECT・INSERT・UPDATE・DELETEでき
ます。
• Stored Procedureを作成してデータを
SELECT・INSERT・UPDATE・DELETE
できます。
• ウィザードでクエリを
追加できます。
わんくま同盟 大阪#2 & 東京#1 合同勉強会
TableAdapterのメソッド
• DataSetを使用する
Fillメソッド
指定したDataSetに読み込む
GetDataメソッド DataSetを作成し読み込ん
で返却
Updateメソッド DataSetやDataTableの
DataRow配列の変更分を自動的に更新する
• DataSetを使用しない
Insertメソッド
データを指定して追加
Updateメソッド
データを指定して更新
Deleteメソッド
キーを指定して削除
わんくま同盟 大阪#2 & 東京#1 合同勉強会
Partial を使いこなそう
• TableAdapterをFormのContainerに参加
• TableAdapterの資源をDisposeする
TableAdapterはダメダメか?
http://www.ailight.jp/blog/mnow/archive/2006/05/28/11475.aspx
• StoredProcedure の戻り値を取得する
TableAdapterは使いにくいのか?
http://www.ailight.jp/blog/mnow/archive/2005/11/09/10046.aspx
• CommandTimeout を指定する
近日公開
http://mnow.wankuma.com/
わんくま同盟 大阪#2 & 東京#1 合同勉強会
SqlDependency
SqlDependencyでデータベースの変更を
ASP.NETではなくADO.NETのみで検出
テーブル変更
SQLデータベース
変更の反映
Notification Service
わんくま同盟 大阪#2 & 東京#1 合同勉強会
わんくま同盟 大阪#2 & 東京#1 合同勉強会
更新1対検出5
わんくま同盟 大阪#2 & 東京#1 合同勉強会
SQLServerの様子
わんくま同盟 大阪#2 & 東京#1 合同勉強会
検出側のプログラム要素
• SqlDependencyクラス Staticメソッド
SqlDependency.Start 接続のリスナを開始
SqlDependency.Stop 接続のリスナを停止
• SqlDependencyクラス
コンストラクタ
SqlCommandに関連付け
OnChangeイベント
通知を受け取った場合に発生
わんくま同盟 大阪#2 & 東京#1 合同勉強会
プログラムの注意点
• SELECT文はスキーマ名から指定する
SELECT dbo.User.ID, dbo.User.Name
FROM dbo.User
• OnChangeイベントは別スレッドでも発生する
BeginInvoke で自分のスレッドに通知
わんくま同盟 大阪#2 & 東京#1 合同勉強会
ディスカッションしましょう
• Q/A
• TableAdapterを使った感想を教えてください
• SqlDependencyをどういう局面で使いましょ
うか?
わんくま同盟 大阪#2 & 東京#1 合同勉強会