透過 Fiddler 快速修改網頁內容用以除錯上線的網站

大家都知道 Fiddler 可以用來做 HTTP 追蹤/除錯,尤其是對 JavaScript/AJAX/XHR 使用頻繁的今天更是必備的工具之一,除了可以抓取所有 HTTP 的封包外,Fiddler 還可以用來修改透過 HTTP 傳回來的網頁內容(HTML)、JavaScript 檔(*.js)、CSS 檔(*.css) 或任何圖檔,都可以透過自訂的 Fiddler Script 或 Extension Plugins 進行修正後再傳回到瀏覽器中,這對於已經上線的網站來說,十分的適合用來測試 HTML/CSS/JS 修改過後的顯示結果。

... 繼續閱讀 ...

介紹好網站:Regular Expression Library

我之前就講過 Regular Expression 是學一次用一輩子且是程式設計師一定要學的技能之一,不過由於 Regular Expression 的語法太過特殊且功能強大,讓許多人在初學的時候就很害怕,甚至乾脆不學,有需要的時候就到網路上到處找,雖然也能解決問題,不過複製一個看不懂的東西內心總是不太紮實的,所以我建議無論如何任何一位程式設計師都一定要花時間學會看懂所有 Regular Expression 語法,並進而自行撰寫所需的 Regular Expression 表示式。

... 繼續閱讀 ...

如何強迫 .Net 應用程式輸出英文的例外訊息

因為常常需要跟國外 Blogger 交流,甚至回報某些國外 .Net 產品的 Bug 給他們,所以常常都要自行翻譯「例外訊息」( Exception Message ),不過有時後真的會翻錯。再者,若在開發 .Net 時遇到一些很少見的問題,用中文搜尋不到時,可能會想將訊息翻成英文後再搜尋一次,不過也有可能因為翻譯錯誤導致搜尋結果不夠精準。所以若能夠在除錯的時候輸出英文版的例外訊息,那該有多好阿!

... 繼續閱讀 ...

透過 OleDb 精準讀入 Excel 檔的方法

之前因為有個案子要做 Excel 匯入的功能,需要讓客戶先下載匯入檔案範本,然後讓客戶上傳 Excel 檔 ( *.xls ),再透過 C# 讀取資料後存入資料庫,我是採用 OleDb 的方式在 Server 端開啟檔案並將資料讀出,不過卻遇到了幾個難解的問題,其中最討厭的問題就是透過 OleDb 載入資料時,它都會自動判斷 Excel 中每個欄位的型別,假設工作表中的第三欄的前 8 列的值是「數字」,而第 9 列的「文字」的話,當讀取到第 3 欄第 9 列的時候,該儲存格的欄位值就會是 Null,可能會引發程式執行錯誤(因為你會預期有資料)。

... 繼續閱讀 ...

當使用 DetailsView + LinqDataSource 時發生更新衝突

之前我曾經寫過一篇【解決 LINQ to SQL 資料庫更新衝突的情形】,主要是講解在寫 LINQ to SQL 程式的時候(Code Behind)若發生衝突的解決辦法,但我最近遇到的問題是,當我的頁面用的是 DetailsView + LinqDataSource 且完全是用宣告(Declarative)的方式寫成的,也就是改頁並沒有寫任何程式碼,這時發生了衝突的狀況的錯誤訊息是 Row not found or changed (如下圖示),不過卻完全看不出哪裡錯了,只知道新增資料的時候不會出錯,但每次更新或刪除的時候都會出錯,而從堆疊追蹤(Stack Trace)所顯示的訊息來看,也沒地方讓我修改,遇到這種問題先不要驚慌,因為這應該只能用我文章中說明的第三種方法進行設定了。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...