0

これはおそらくばかげた質問です。ポストバック後にオフになるイベントハンドラーが20個あるとします。イベントが開始する直前にデータベースへの接続を開き、イベントが終了した直後にデータベースを閉じたいと思います。オープンステートメントとクローズステートメントをWebフォームのどこに配置しますか?

4

2 に答える 2

2

Page_Loadイベントは、ページのライフサイクルのイベントの後に発生します。そこで、そこで開いて、で閉じることができますPage_PreRender

しかし実際には、接続を開かないようにすることをお勧めします。開いている接続は再利用できません。したがって、使用した場所では常にできるだけ早く接続を閉じる必要があります。最も良いのは、を使用することusing-statementです。

于 2012-09-25T21:57:28.790 に答える
1

ASP.NETページのライフサイクルを理解する必要があります

ポストバックイベントはLoadLoacCompleteページのイベントの間に発生するため、接続が開かれていることを保証する場合は、 (または前の)イベントで開き、イベント(またはそれ以降)Loadで閉じることができます。LoadComplete

ただし、エラーが発生した場合、おそらくLoadCompleteイベントは呼び出されません。

usingステートメントを使用してデータベース接続を操作することをお勧めします。

using(var cn = new SqlConnection(".."))
{
   cn.open();
   // here your database code
}

クイックビューとして:

ここに画像の説明を入力してください

于 2012-09-25T21:56:43.067 に答える