Quantcast
Channel: Darkthread
Browsing all 428 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Json.NET 日期型別時區問題之終極解法

一直以來常被 JSON 日期序列化時區問題困擾,問題主要發生於從資料庫查詢日期欄位,轉為 .NET DateTime 型別時其 Kind 屬性為 Unspecified,而以 DateTime.Now、DateTime.Today 取得的日期物件,Kind 則為 Local,二者不一致可能導致前端出現 8 小時時差。為解決問題,先前想到的做法是先宣告...

View Article


Image may be NSFW.
Clik here to view.

SQL 資料轉 INSERT 語法-使用 Visual Studio

將資料表內容轉成一連串 INSERT 語法,是蠻好用的跨伺服器搬資料表招式,之前我最愛用的工具是 SQL Dumper,但昨天聽到不幸消息:官方網站人去樓空,連註冊的 DNS 網域都已棄守。重新尋找替代方案,找到三種做法:SSMS 內建 Generate Script 功能 接著透過 Wizard 介面指定資料表並設定只輸出資料(Types of data to script: Data only)...

View Article


Image may be NSFW.
Clik here to view.

古董點陣印表機套表列印經驗

工作多年,第一次遇到用撞針式印表機套表印單據的需求。身為具有30 年個人電腦使用資歷,MS-DOS 3.1 年代下海的老人,當然摸過用過還買過點陣式印表機,但都已 2017 年,便宜的黑白雷射印表機 2500 元就有,作業系統也來到 Windows 10,再回頭使用 20 年高齡的點陣式印表機,就是很新奇的體驗。題外話:講到點陣式印表機,就不免想起學生時代痴心妄想 DIY...

View Article

Image may be NSFW.
Clik here to view.

再談集保罕用字集與 BIG5 造字區

同事遇到集保罕集問題,我試著解釋個中奧妙時冒出一堆「集保罕字的X」「Unicode標準字的X」「看起來一樣但編碼不同」把同事薰得七葷八素,感覺都快吐了… 嗯,寫篇文章細說從頭吧。很久很久以前,在 Unicode 還沒一統天下之前,BIG5是台灣地區的主流中文編碼,其中定義 13,053 個常用字與次常用字與 441...

View Article

Image may be NSFW.
Clik here to view.

C# 連線 HTTPS 網站發生驗證失敗導致基礎連接已關閉

某台透過 .NET WebClient 物件爬網頁抓資料排程忽然出現:基礎連接已關閉: 傳送時發生未預期的錯誤。 ---> System.IO.IOException: 驗證失敗,因為遠端群體已經關閉傳輸資料流。 The underlying connection was closed: An unexpected error occurred on a send. --->...

View Article


Image may be NSFW.
Clik here to view.

TIPS-調整 SQL Agent 作業記錄筆數限制

查詢 SQL Agent 排程執行問題時,發現一個狀況:使用 Log File Viewer 查詢作業記錄(Job History Log),大部分排程的執行歷程都是空的(如下圖),只有少數幾個排程有內容:研究後學到一件事-SQL Agent Job History 有預設筆數限制,預設值為所有排程作業總共 1000 筆,每項排程作業最多 100...

View Article

Image may be NSFW.
Clik here to view.

筆記-T-SQL 分頁查詢並傳回總筆數

資料庫查詢結果要做分頁,我較常用的做法是拉到 C# 端將物件陣列或 List<T> 存入 MemoryCache,用 .Length 可以取總筆數,用 Skip(pageSize  * (pageNo - 1)).Take(pageSize) 取回指定頁數資料,換頁或排序時從 MemoryCache...

View Article

Image may be NSFW.
Clik here to view.

小技巧-使用匿名型別快速捏出指定JSON格式

同事有個小需求,已知城市、區域及郵遞區號要產生如下規格的 JSON 餵到前端:{"rows": {"row": [ {"City": "台北市","Area": "文山區","ZIP": "116" } ] }}先前介紹過 JObject 結合 dynamic 的花式玩法可以快速達成目標:staticvoid TestJObject(string city, string area, string...

View Article


Image may be NSFW.
Clik here to view.

ViewBag dynamic 特性導致無法使用 LINQ 語法

寫 ASP.NET MVC CSHTML 時,我很習慣用 ViewBag 將變數從 Controller 傳到 View 端,只是簡單傳遞幾個字串、數值,為此大費周章宣告 Model 型別有點殺雞用牛刀。我們都知道 ViewBag 是一個 dynamic 型別,而 dynamic 型別的屬性、方法也會被視為 dynamic,編譯階段不檢查,執行階段見真章。不過,最近學到一件事:一旦函式參數傳入...

View Article


Image may be NSFW.
Clik here to view.

dynamic 參數之效能損耗實測

依據前篇文章:參數傳入 dynamic 會讓函式傳回值也變成 dynamic,導致無法使用 LINQ Lambda 運算式。文末提到,依據方法多載(Method Overloading)與 dynamic一文的研究心得,.NET 呼叫函式時若遇到參數為 dynamic 時,將改用System.Runtime.CompilerServices、System.CSharp.RuntimeBinder...

View Article

Image may be NSFW.
Clik here to view.

Reporting Service 報表 List 區塊使用多資料表

Reporting Service RDLC 報表設計進階議題一枚。先說情境,假設有技能專長與擅長語言兩個資料表,其中有每個人的資料,想在 RDLC 報表採以下形式呈現:先印出姓名,接著以表格形式分別列出技能清單與語言清單:這類需求,最直覺有效的做法是使用子報表!很不幸,同事嘗試用子報表解決卻踼到鐵板:明細資料總筆數約 2000 筆,拆成 500...

View Article

Image may be NSFW.
Clik here to view.

Dictionary 多執行緒存取衝突吃光 CPU

這是一個老鳥失足,程式沒寫好吃光 CPU 的故事。開始前推薦大家兩篇先修知識:WinDBG 應用實例:找出 ASP.NET CPU 100% 原因ASP.NET CPU 飆高問題之傻瓜分析工具-DebugDiag Tools接獲通報,某主機在離峰時段出現 CPU 維持 50% 高檔狀況,來源則是某個 ASP.NET AppPool Process。依照 SOP,先擷取 Memory Dump...

View Article

Image may be NSFW.
Clik here to view.

小筆記-避免 ThreadAbortException 的Response.End() 替代寫法

一個古老問題,在 ASP.NET 呼叫 Response.End() 會觸發 ThreadAbortException,假警報常會干擾偵錯與問題追查,之前寫過文章但沒整理完整的替代方案,今天補上筆記。使用以下程式重現問題,WebForm 網頁包含一枚按鈕,按下時透過 AJAX 呼叫同一程式,Page_Load() 事件遇 Request["m"] == "ajax" 時...

View Article


Image may be NSFW.
Clik here to view.

小技巧-當集合型別不支援 LINQ 擴充方法

用慣 LINQ 後不太能忍受回頭用 foreach 處理集合物件,List<T>、IEnumerable<T> 及物件陣列可直接 Where()、Select() ,基本上涵蓋大部分應用情境,但有些時候還是會遇到一些不支援 LINQ 擴充方法的集合物件。這篇筆記將介紹透過簡單轉換讓集合支援 LINQ 的小技巧。(別像我以前傻傻先 var list = new...

View Article

Image may be NSFW.
Clik here to view.

大型物件 Json.NET 序列化經驗一則

附檔管理模組裡採用 JSON 格式保存暫存物件,將附檔物件序列化暫存成檔案,稍後寫入資料庫時再還原取出資料,直覺又方便。不料因附檔物件內含檔案內容(byte[])體積龐大,在處理極端案例時踢到記憶體不足的鐵板。批次作業程式為 32 位元模式,依經驗記憶體上限約 1.8 GB,一開始很直覺地將資料用 JsonConvert.SerialObject() 轉成 JSON 字串再用...

View Article


Image may be NSFW.
Clik here to view.

使用 DebugDiag Tools 分析 ASP.NET 站台記憶體耗盡問題

同事報案,某測試站台不定期會發生 OutOfMemeoryException 記憶體不足錯誤,接獲通報立刻趕往事故現場,問題網站已吃掉 1.8GB 記憶體,差不多是 32 位元模式可用記憶體的上限。廢話不多說,開啟 32 位元工具管理員(C:\Windows\SysWOW64\TaskMgr.exe 參考) 擷取 Memory Dump 檔。從工具箱搬出 CPU/Memory 茶包分析的小型戰術核武...

View Article

Image may be NSFW.
Clik here to view.

【茶包射手日記】新增檔案後卻無權限修改

一個詭異的狀況。為了在測試網站測網頁,我透過該主機的網路分享建立一個 HTML 檔案,測完一回,調整程式想存檔時 Notepad++ 彈出以下訊息:這是 Notepad++ 寫入檔案存取被拒的貼心 SOP,當寫入本機檔案遇到權限不足,改用管理者身分多可克服;但本案例檔案來自網路分享資料夾,切換成本機管理者也無濟於事。但這個訊息指出一項事實 -...

View Article


Image may be NSFW.
Clik here to view.

【答客問】ClosedXML 日期資料解析測試

網友 Danny 在舊文留言提問關於 NPOI 讀取 Excel 日期,"2017/9/23"被轉成"23-九月-2017"的問題,我已棄用 NPOI 投向新歡 ClosedXML多年,沒打算再花時間研究,於是題目改成: 面對相同文件,ClosedXML 能否順利過關?取得 Danny...

View Article

Image may be NSFW.
Clik here to view.

Coding4Fun-試聽 16 進位字串表示的 MP3 內容

鹹蝦專案(利用閒暇經營的 Side Project)遇到的需求,先前把 MP3 音效資料整進 SQL 資料表轉成 IMAGE 資料型別,查詢起來像這樣:如果我想試聽這段聲音該怎麼辦? 網路上可以找到一些 T-SQL 範例,將 SQL 裡的二進位資料匯出成檔案。不過這樣子每次試聽的步驟有點麻煩: 用 SELECT 取得某一筆 IMAGE 內容 -> 以內容及檔名為參數呼叫 Stored...

View Article

Image may be NSFW.
Clik here to view.

【茶包射手日記】分離式冷氣出風無冷度故障經驗

小木頭跑來報案,房間冷氣完全不冷。前陣子蝦皮免運時失心瘋採購一批儀器,把居家度量衡全面電子化(左起 PH 酸鹼計,土壤濕度酸鹼日照三用錶,電子游標卡尺,紅外線測溫槍),這回輪測溫槍派上用場了。冷氣機出風強弱、運轉模式、溫度調整等操作一切正常,唯一有問題是即使溫度調到 20 度,出風口溫度還是 30 度,跟室溫相同,毫無冷度可言。先做好基本功,洗了濾網(就像作業系統有問題要先做 Windows...

View Article
Browsing all 428 articles
Browse latest View live