2013-05-07 74 views
1

我有一個直接連接到SQL Server 2008WM6.5連接到SQL Server 2008:我應該保持連接打開嗎?

通常的實例的移動應用程序,如果這是是一個桌面應用程序,我會換每個數據庫中的呼叫using語句:

using (SqlConnection sqlConnection = new SqlConnection(ConnectionString)) 
{ } 

而且如果它是一個連接到本地壓縮數據庫的移動應用程序,我會在應用程序的整個生命週期中保持連接打開(因爲它必須每次重建)。

但是,現在我面臨的是一個連接到真實服務器的移動應用程序......所以最好遵循桌面路由還是移動路由?起初,我打算做桌面路線,但後來我記得手機版本甚至沒有支持共享,所以也許最好把它打開?

回答

2

移動設備是無線的 - 電池供電。

它們旨在通過在不使用時關閉資源來使用非常小的功率。這適用於您的無線電!

當你需要時它會重新打開,但Open連接不會知道。

我的猜測是你將遇到連接問題。該軟件將打一個電話並等待響應。

如果當時沒有連接無線電臺,它可能會或可能不會拋出錯誤以供您查看。

無論是否引發錯誤,您如何着手與您的應用程序重新建立連接?除非你在那裏編寫代碼,否則你需要重新啓動你的應用程序。

我不認爲有任何正確或錯誤的方式來做到這一點,但我會認爲只有當您需要時纔打開連接將是一個最佳實踐的想法。

+0

我想我會同意。我認爲它會稍微慢一些,但在進行調用之前總是必須嘗試連接,這樣可以更輕鬆地處理設備超出範圍或SQL服務器不可用的情況。如果別人可以提供我沒有考慮過的任何東西,我會等很長時間,但如果我沒有得到任何其他答案,我會標記這一個。 – Wrightboy 2013-05-08 14:15:15

+0

jp2code是正確的,你不能假設移動設備總是連接。您必須連接連接,如果連接斷開,您必須重新建立連接。你真的需要完整的連接訪問嗎?您可以考慮使用RDA(http://msdn.microsoft.com/en-us/library/aa257442%28v=sql.80%29.aspx)和合並複製保留數據庫的本地「視圖」。因此,您可以獲取數據並推送更新。 Paul Yao在「編程精簡框架」中寫了關於RDA和合並複製的很好的一章。 – josef 2013-05-08 16:42:10