2

をusingにバインドするSQLDataSourceと、これらのクエリの実行にかなりの時間がかかることがよくあります。GridViewGridView.DataBind()

進行中のコードをキャンセルするコードはDataBind()どれですか?

DataBind()DB接続を停止または閉じる方法が見つからないようです。

再バインドの試み:

myConn.ConnectionsString = ""
myConn.SelectCommand = ""
myGrid.DataSource = Nothing
myGrid.DataBind()

試行を破棄します

myConn.Dispose()
myGrid.Dispose()

どちらの試みも実際には接続を閉じませんでした。Oracleは、まだ接続されており、クエリを実行していることを示しています。

4

5 に答える 5

1

別の方向から問題に取り組むのはどうですか。結合とサブクエリを変更することによって、または単にページ上の他の入力に基づいて、より少ないデータを取得することによって、クエリを最適化することを検討しましたか?

于 2009-12-21T16:30:52.803 に答える
0

using{}ブロックはこの状況に適しています。ブロックを使用して接続を使用する

于 2009-12-21T21:54:50.687 に答える
0

GridViewを手動でバインドすると、バインドプロシージャにロジックを挿入して、そのプロシージャを終了できます。

これを行うには、GridViewのonDataBindingイベントをサブスクライブします。

GridViewの手動バインディングの詳細については、 http://www.aarongoldenthal.com/post/2009/04/19/Manually-Databinding-a-GridView.aspxを参照してください。

于 2009-12-16T18:11:23.983 に答える
0

このシナリオではページングをお勧めしますが、私はDaveに同意します。多くのバリエーションがありますが、ここでの最初のアプローチは、一度にプルバックされる行の数を特定の数に制限することです。接続を確立しようとして、時間内に応答しない場合は接続を切断しようとすると、アプリケーションユーザーを苛立たせるだけです。

これがあなたが始めるのを助けるかもしれない1つの投稿です。

datagridを使用したスマートページング

于 2009-12-21T19:28:29.320 に答える
-1

接続を閉じて、すべてのリソースを解放するだけです。

myConn.Close();
myConn.Dispose();
于 2009-12-22T11:40:32.110 に答える