2008-11-14 55 views
0

我剛剛上傳了我的第一個ASP.NET(作爲我學習vb.net的一部分),並陷入了連接池混亂(有趣的事情發生時,有超過1個用戶的網站)通過更好地使用try catch語句(好的想法是學習)現在排序,但我想知道這是否是最好的/最終的方法,現在如果嘗試失敗,那麼很多頁面上的細節沒有被放置/更新,所以如果你正在做一些數據庫工作,並且嘗試失敗,你是否重新加載頁面...重定向到自我,並希望它下一次工作...或只是通知用戶有錯誤,他們應該再試一次?ASP.NET邏輯/連接池和錯誤處理

感謝

回答

0

您應該defintely用於實現所有對象「using」語句IDisposable(如連接和讀者)。 A「用」語句被翻譯成一試,終於在幕後阻止,並確保Dispose()方法,即使出現錯誤時調用。

下面是一個代碼段例如:

using (SqlConnection conn = new SqlConnection(this.connectionString)) 
{ 
    using (SqlCommand cmd = conn.CreateCommand()) 
    { 
     cmd.CommandText = "LoadFromRepository"; 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@ID", fileID); 

     conn.Open(); 
     using (SqlDataReader rdr = 
        cmd.ExecuteReader(CommandBehavior.CloseConnection)) 
     { 
      while (rdr.Read()) 
      { 
       // do something with read data 
      } 
     } 
    } 
} 
0

我絕不會自動重定向並希望它會工作,下一次(你可能會得到一個無限循環)。

通知用戶和可選的鏈接以再次嘗試。

你甚至可能要分析你的例外,看看是否另一次嘗試將有所幫助。有些例外是真正的錯誤,而另一個例外是無濟於事的。

0

如果發生意外錯誤,請將用戶重定向到錯誤頁面,因爲它可能會在下一次發生。

您是否查看過「使用」語句用於數據庫連接和讀取器?