The Will Will Web

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

在寫 ASP.NET 的時候要謹慎使用靜態(static)欄位

最近發現了一個之前開發過的網站,大約兩、三天就會發生「已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉。」的錯誤訊息,整個網站可以正常編譯,代表語法沒問題,測試的時候可以正常執行也不會發生 Exception,但只要一到了客戶那邊的主機執行個幾天就會開始出現問題,但通常多 reload 幾次網頁就會正常執行就好了,完全是一個很詭異的狀況。

... 繼續閱讀 ...

用 .NET 寫 COM 元件的注意事項

之前曾經接了一個案子,需要寫一個元件給 ASP 來呼叫,我最後是採用 .NET 開發出相關功能,然後設定成一個 COM 元件,而當時也有紀錄下整個開發的過程,如下:

... 繼續閱讀 ...

推薦:Microsoft Visual Studio International Pack 1.0 版

Microsoft Visual Studio International Pack 是一套國產的類別庫喔,是由台灣微軟的工程師所開發的,主要是幫助 .NET 程式開發人員建立全球化的應用程式,其中包括許多功能,其中有一套我們很可能會用到的「繁簡轉換」功能,也就是「中文繁簡轉換類別庫」。

... 繼續閱讀 ...

C# 3.0 初始設定 Hashtable 的方式

C# 3.0 有個特性叫做「物件和集合初始設定式」(Object and Collection Initializers),一般的用法是:

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

好用的 Json.NET 2.0 已發佈

JSON ( Javascript Object Notation ) 是一種很方便的資料格式,常用於 AJAX 的相關應用中,主要是可以將 JavaScript 的物件資料變成一種字串的格式,以方便網路傳輸,也是序列化的一種方式。

... 繼續閱讀 ...

在撰寫 LINQ to SQL 時應注意的幾個小地方

這陣子的專案幾乎每個都會用到 LINQ to SQL 技術,但我發現有些人在撰寫程式碼的時候有些不太好的習慣,會對資料庫進行一些多餘的查詢動作或建立多餘的 DataContext,以下是我最近觀察到的幾種狀況與建議的寫法:

... 繼續閱讀 ...

亂數產生器:Random 與 RNGCryptoServiceProvider

一般眾所周知的亂數的產生應該都會使用 Random 類別,而在大部分的情境中使用 Random 類別其實是足夠用的,例如說你想要透過亂數選取目錄中的照片輸出到網頁中,或是將篩選出來的資料亂數排序後輸出到檔案(例如說抽獎程式)。

... 繼續閱讀 ...

避免 DropDownList 指定無效的 SelectedValue

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

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

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

建議可以改成這樣:

... 繼續閱讀 ...