オブジェクトをどこで破棄するか
こんにちは。C#もしくはVBについてお教え下さい。オブジェクトの破棄をどこですればいいかわからなく、悩んでいます。
フォームには下記のオブジェクトが配置されています。
・データグリッドビュー
・検索ボタン
・閉じるボタン
動作は下記のようになります。
・フォームをロード時、データベースにアクセス。データテーブルにデータをセット。グリッドビューに表示。
・検索ボタン。データベースにアクセス。データテーブルにデータを再びセット。グリッドビューに表示。
・閉じるボタン。フォームを閉じる。
・DataTable、DataAdapter、sqlConnectionなどの変数は使い回しています。
質問:
これらのオブジェクトを破棄、disposeするのは、どのタイミングですれば良いでしょうか?
閉じるボタンを押された時でしょうか?またフォームの右上にバッテンマークがありますが、これが押された時もdispose処理を入れておいたほうがいいのでしょうか?
またはフォームを閉じた時は自動で破棄してくれるのでしょうか?
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
書かれているうちで,手動によるDispose対象になるのはSqlConnectionだけですね。
コントロールは親がDisposeされるとそのままDisposeされるので。
で,IDisposableなインスタンスが自分の管理下にある場合,
・不要になったらDisposeを呼び出す
・IDisposableなインスタンスは必要最小限の範囲で使う
のがよいと思います。
SqlConnectionに関しては,コネクションプーリングに任せて必要な時のみ開いて閉じればよいでしょう。
# SqlConnectionに関して,Poolingはデフォルトtrue。
このため,
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
/* DataAdapter使ってDataTableに値を流し込む */
}
と,単一メソッドの中で開いて閉じることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのエラー表示の対処法について
-
Excelのマクロについて教えてく...
-
VBAのループ処理について教えて...
-
修正依頼:【VBA】 結合セルに...
-
【ExcelVBA】5万行以上のデー...
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
エクセルでCDOを使ったメール送...
-
【VBA】 結合セルに複数画像と...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】インデックスが有...
-
Visualbasicの現状について教え...
-
VBA 2次元配列の出力
-
エクセルVBAのブックを開く方法...
-
エクセルVBAで特定のセルの値を...
-
【ExcelVBA】dictionaryの重複...
-
VBAでセルの書式を変えずに文字...
-
Vba TextBox1.ControlSourceに...
-
配列のペースト出力結果の書式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクト型の変数が定義さ...
-
C# panel内のコントロールの使...
-
コンストラクタ内でのthisポインタ
-
関数で値渡しと参照渡しではど...
-
ボタンを押すとラベルの文字を...
-
クラス内にWin32APIのコールバ...
-
【VC++6.0(MFC)】「Out of memo...
-
オブジェクトをどこでdisposeす...
-
イベントドリブンとオブジェク...
-
最小化したフォームを元に戻す
-
デザイナ時のエラー「オブジェ...
-
Excel2003VBAからIE64bitを制御
-
delete演算子によるメモリ解放...
-
オブジェクト指向を理解できない。
-
SetとNothingの存在意味?
-
VB6では、Applicationは未定義...
-
vectorに格納されたオブジェク...
-
メモリリークが発生するのはど...
-
プログラミング
-
FriendとPublicの違い。。。
おすすめ情報