2009-12-16 191 views
2

我使用GridView.DataBind()SQLDataSource綁定到GridView,這些查詢通常需要很長時間才能執行。關閉SQLDataSource連接

什麼代碼會取消正在進行的DataBind()

我似乎無法找到任何方法來停止DataBind()甚至關閉數據庫連接。

重新綁定嘗試:

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

處置嘗試

myConn.Dispose() 
myGrid.Dispose() 

兩次嘗試均告實際上是關閉了連接。 Oracle仍然表示它仍然連接並執行查詢。

回答

0

您可以手動綁定GridView,並允許您將邏輯插入綁定過程以允許您退出該過程。

爲此,請訂閱GridView的onDataBinding事件。

您可以在此處詳細瞭解手動綁定GridView的:http://www.aarongoldenthal.com/post/2009/04/19/Manually-Databinding-a-GridView.aspx

+0

詳細闡述「插入邏輯...以退出該過程」。我想停止DataBind,關閉數據庫連接,並因此終止對數據庫的查詢。 – Steven 2009-12-16 18:24:38

+0

通過這個,我的意思是不使用SQLDataSource中的SelectCommand來自動填充GridView,而是可以編寫自己的邏輯來填充GridView。所以在函數中,爲你的GridView調用onDataBinding來註冊你的數據庫並開始將值插入到你的GridView中。 這是相當多的工作,因爲您真的在重新發明輪子,但它允許您隨時停止流程,關閉連接,甚至爲用戶提供反饋。 這有幫助嗎? – 2009-12-16 19:37:41

+0

如何關閉連接?我無法找到該方法。 – Steven 2009-12-16 19:40:25

1

如何從不同的方向解決這個問題。您是否通過更改連接和子查詢來優化查詢,或者只是簡單地拉少數據,可能基於頁面上的其他輸入?

0

我同意戴夫,但我會建議在這種情況下分頁。有很多變化,但我的第一種方法是限制一次拉回到特定數量的行數。試圖建立連接,如果不及時做出響應,則打破它只會讓應用程序用戶感到沮喪。

這裏有一篇文章可能會幫助你開始。

smart paging with datagrid

0

使用{}塊適合本的情況。使用您的連接與使用塊

-1

只需關閉連接並釋放所有資源。

myConn.Close(); 
myConn.Dispose(); 
+0

你真的讀過這個問題嗎? – Filburt 2010-01-08 09:01:05