The Will Will Web

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

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

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

... 繼續閱讀 ...

在 ASP.NET 中強迫輸出 BOM 字元的方式

我最近發現就算我的 ASP.NET 頁面是用 UTF-8 編碼(包含BOM字元)、或在頁面中設定 ResponseEncoding 為 UTF-8 編碼,最後輸出到瀏覽器的文件都一定不會有 BOM ( Byte-order mark ) 字元,這就很有可能造成 Browser 誤判網頁的編碼,我特別強調是「可能」會誤判而已,在我實際的工作經驗裡,瀏覽器在讀取沒有 BOM 字元的 UTF-8 網頁都沒出問題過,不過當我們選取【檢視 -> 原始檔】的時候,網頁內容被預設編輯器開啟的時候,編輯器就真的「很有可能」會誤判了,像我同事的 Notepad++ 在開啟網頁原始檔時,就幾乎全部變亂碼必須要手動切換到「編譯成 UTF-8 碼」才會變正常。(奇怪的是這些事總不會在我的電腦發生,不知道是不是我的電腦吃了我太多的口水所致)

... 繼續閱讀 ...