C# | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

解決 LINQ to SQL 資料庫更新衝突的情形

我前陣子遇到一個偶發的錯誤狀況,就是我在我某個頁面中需要計算文件下載的次數,因此需要每次進入頁面時都要讓該筆資料的 num 欄位的值自動加 1,也就是每次都要更新資料庫,但是每過幾天就有可能收到幾個 System.Data.Linq.ChangeConflictException 例外狀況,錯誤訊息如下:

... 繼續閱讀 ...

今天成功的利用 WinDbg 分析與解決程式 Hang 住的狀況

我們之前有一支 Console Program 程式是用來收取 POP3 伺服器中的郵件,並在解析郵件內容後進行分析與後續處理,不過三不五時程式都會 Hang 住不動,導致分析作業無法進行下去。又因為我們在開發環境一直都很正常的執行,程式是到正式主機才 Hang 住的,所以一直很苦惱到底要怎麼解決。

... 繼續閱讀 ...

好用的 Linq Samples and the Sample Query Explorer

上次在微軟 Windows Server 2008 與 Visual Studio 2008聯合上市發表會看到有講師執行一個 LINQ Project Sample Query Explorer,覺得很好用,因為他把所有 LINQ 的範例放在程式裡,點選之後就會出現語法,還可以執行,真是學習 LINQ 的絕佳教材。

... 繼續閱讀 ...

避免 DropDownList 指定無效的 SelectedValue

去年有寫過一篇 DropDownList 在作 DataBind 的時候發生 Exception,是還蠻實用的,不過原則上來說程式盡量不要讓他發生 Exception 比較好,因為丟出例外事件是十分消耗系統資源的,今天另外分享另一個小技巧。

如果原本指定給 SelectedValue 的程式長這樣:

DropDownList1.SelectedValue = Request.QueryString["ID"];

建議可以改成這樣:

... 繼續閱讀 ...

ASP.NET 如何將目前的 Cache 物件全部清空

最近在測試一個大量做 Cache 的網站,測試的過程中想說要先將 Cache 物件中的資料全部清空,才發現原來 ASP.NET 中內建的 Cache 物件 ( System.Web.Caching.Cache ) 並沒有支援 Clear() 方法,無法用一行把所有的 Cache 物件清空,然而我也嘗試看有沒有 Cache.Keys 物件,好讓我用 foreach 取得所有 Cache 的 Keys 進而一個一個刪除,結果也是沒有!原來要用以下這段程式碼才能將所有 Cache 中的 Keys 全部取出並逐一刪除:

... 繼續閱讀 ...

ListView + DataPager 在不使用 LinqDataSource 時會有問題

ASP.NET 3.5 中新增的 ListView、DataPager 與 LinqDataSource 控制項可說是絕佳拍檔,不過當你不使用 LinqDataSource 的時候會發生一個小問題,就是當你在第一次點選 DataPager 中的頁碼時並不會跟著跳頁,而點選第二次的時候才會正常運作!所謂的「不使用 LinqDataSource 的時候」是指你的資料來源的取得可能是寫在 Code Behind 中或是使用 ObjectDataSource 或 SqlDataSource 控制項,例如:

... 繼續閱讀 ...