ODP.NET 無法讀取 Oracle 欄位計算結果
同事報案,使用 Dapper + ODP.NET 呼叫某 Procedure,以 Ref Cursor 取資料時出現型別轉換錯誤,一路深入追查,發現問題跟是否用了 Procedure、Ref Cursor、 Dapper 都沒有關係,錯誤發生在 ODP.NET 層。有問題的查詢涉及幾個高精確度的欄位運動,經過一番簡化,我先找出用下列查詢可重現問題。使用 PL/SQL Developer...
View ArticleLINE 反斜線變日圓符號(¥)之謎
電腦版 LINE 輸入與顯示時老將磁碟路徑的反斜線符號「\」改成日圓符號「¥」,挺困擾的:推測可能與 Meiryo 明瞭體字型有關。如果你的 Windows 有安裝日文語言選項,以下網頁可證明在 Meiryo 字型中反斜線符號會變成 ¥。原因出在並不是每個國都使用 \ 作為路徑分隔字元,日本是用 ¥,而韓國則是用 ₩。參考 從維基百科找到日韓鍵盤配置圖範例,右上角 Backspace...
View Article使用 WebClient FTP 上傳檔案發生 553 錯誤
在 .NET 要 FTP 上傳檔案,最精簡有效的做法莫過於使用 WebClient,例如:using System;using System.IO;using System.Net; publicclass CSharpLab{publicstaticvoid Test() {string userName = "ftpAccount";string password =...
View Article閒聊:用 LINQ 還是自己寫 SQL?
前陣子在網路看到「該靠 EF(LINQ)還是自幹 SQL 語法(甚至一律轉成 SP)」 的討論,我的「個人偏好」挺明確-CRUD 可靠 EF/ORM 省工,複雜查詢或操作則走 Dapper自己寫 SQL。不過它只算是「偏好」,其效益因客觀條件劇烈變動,若無視開發者背景、人力資源配置、系統需求等各種因素,無限期支持 OOO 一定比 XXX...
View ArticleCSV 轉換利器-ServiceStack.Text
做專案免不了遇到匯出或讀取 CSV 的需求,將物件轉成逗號分隔字串看似小菜一碟,用 C# 串字串也能搞定,但魔鬼在細節裡:字串值如包含逗號就要用雙引號包夾,遇到雙引號要置換成兩個雙引號,如果字串內容有換行符號更是讀取識別時的一大挑戰… 不管是匯出或解析 CSV 都得費不少力氣。最近發現一個處理 CSV 的強大元件-ServiceStack.Text 的...
View Article花 8.29 英鎊拯救世界,WannaCrypt 勒索病毒中場休息
好戲劇化的發展,震驚全球的 WannaCrypt 勒索病毒(嚴格來說是蠕蟲),在一位英國資安研究員註冊某個網域名稱後,中止了第一波攻擊。(讓我想起電影世界大戰裡莫名烙賽停擺的外星人)照片來源:http://thestagblog.com/tuesdayapocalypse-waroftheworlds/相信大家應該都從各大媒體看到報導了,WannaCrypt...
View Article試駕體驗-小工具程式 .NET Core 1.1 版試寫
.NET Core版本演進到 1.1,2.0 也已進入 Preview 階段,輕巧、高效能與跨平台是 .NET Core 最大的優勢,預估未來將成主流,雖然現階段用在工作上的機率不大,找到機會還是該提早練習體驗,以免時間到了來不及上車。最近用 .NET Core 1.1 寫了一支小程式,順手分享實作心得。先說小工具程式的用途,需求很簡單:已有兩個很小的 Web API 服務(就當是...
View Article【茶包射手日記】WebControl Render() 發生 ArgumentNullException
遇到詭異茶包一枚。同事 O 要新加入同事 D 與我共同開發的一個 Web Site 專案。同事 O 使用 Visual Studio 由 TFS 取得最新版本原始碼,編譯正常,卻在執行偵錯時發生錯誤:[ArgumentNullException: 值不能為 null。參數名稱: key(英文:Value cannot be null. Parameter name: key)]...
View ArticleNuGet 小技巧-NLog 套件 .NET Core 支援
前陣子開始體驗 .NET Core 開發後,最常面臨的問題多是某個慣用 .NET 基本元件、第三方程式庫是否在 .NET Core...
View Article使用 Visual Studio 2017 開發 RDLC 報表
很久沒用 RDLC 報表跟 Report Viewer,這幾天有機會試著在 VS 2017 編輯 RDLC 報表,發現做法跟以往不同,做個筆記。首先,Visual Studio 2015 時代 Report Service 報表被包含於 Microsoft SQL Servers Data Tools 安裝選項, VS2017 改為要額外下載安裝:Microsoft Rdlc Report...
View Article2017 海山馬
邁入第五年,海山馬是我唯一年年參加從未缺席過的賽事。(當然,這場命運的糾纏多少源自意外落馬再復仇雪恥的情節)今年第一次不再獨跑,莫名組了亂跑團,打算邊跑邊喇笛賽,隨意跑完就好。一樣是熟悉的起跑拱門布條,但今年把6塗掉改成7的痕跡好明顯,完全不需揣測琢磨,是去年那塊沒錯...
View Article使用物件陣列作為 RDLC 報表資料來源
我喜歡 RDLC勝過 Report Server 報表的原因之一是報表資料來源不限定來自資料庫,可以是自己組裝的 DataTable, 甚至是自訂資料物件,具有無比的應用彈性。這篇文章用一個極簡的範例,展示如何使用 List<T> 當成 RDLC 資料來源。我用中國重大歷史事件一覽表當素材:先設計一個包含 Year 與 Description 屬性的 Event...
View Article【笨問題】在 Chrome 如何檢視 SSL 憑證?
一直以來, 遇到 Chrome 提示安全連線問題,我的第一個動作是在網址前方按右鍵查看問題並檢視憑證資訊:(如下圖)不知從哪一版 Chrome 起,在不安全警示的右鍵選單不再顯示憑證問題詳細資訊,也無法檢視憑證資訊,只有一個「瞭解詳情」連結指向一篇 FAQ 說明。不得其門而入,迫不得已我只好改用 IE 開啟查詢憑證問題。鄉愿了好一陣子,今天痛下決心,認真爬文,才知道這是 Chrome 56...
View ArticleSQLite 資料庫 C# 程式範例-使用 Dapper
最近想在 Coding4Fun 專案使用資料庫管理英文單字及測驗結果。情境本身有些小尷尬,評估規模與複雜度,若用資料物件配合序列化存檔實作有點吃力,搬出 SQL Express 又顯殺雞用牛刀,於是我想起免安裝又超級輕巧的 In-Process 資料庫首選-SQLite!完全沒有 SQLite 使用經驗,開啟 Visual Studio 寫個極簡範例當入門吧!資料物件故意安排了...
View Article檔案總管右鍵選單開啟免安裝版Notepad++
使用安裝版 Notepad++ 的同學請忽略本文,祝你有美好的一天。(同場加映萬用檔案總管右鍵開啟技巧一則,繼續讀下去也無妨。)如果你選擇下載 Notepad++ 免安裝版(zip package、7z package、minimalist package),有個困擾是沒法在檔案按右鍵用「Edit with Notepad++」直接編輯檔案。為此 Notepad++...
View ArticleAJAX 網頁踩雷記:ASP.NET MVC 一秒變蝸牛
來看一個有趣實驗。以下是個簡單的 ASP.NET MVC Controller,在 Index View 透過 AJAX 呼叫向 Server 讀取資料,SimuAjaxCall 則模擬 AJAX 呼叫動作,使用 Thread.Delay() 延遲指定秒數後傳回字串結果:using System;using System.Collections.Generic;using...
View ArticleSession 有毒,所以呢?
上週我才意外發現:古老的 Session 不只會害 ASP.NET WebForm 大排長龍,就連 ASP.NET MVC Controller 也難逃魔掌,對 AJAX 網站效能的殺傷力直逼 BOSS 等級!Session 是 ASP 時代就存在的活化石,允許每個工作階段有自己專屬的資料存放空間,不必費心規劃參數傳遞方式,在任一 ASPX...
View Article將參照 DLL 併入單一 WPF 執行檔
將 .NET 執行檔跟所參照 DLL 合併成單一 EXE 檔的做法之前介紹過(Visual Studio編譯小技巧:工具程式一檔搞定 ),在專案用 NuGet 安裝 MSBuild.ILMerge.Task 就能輕鬆搞定。之前在 Console Application 用得挺順利,今天用在 WPF 卻卡在一個錯誤無法編譯:The item...
View ArticleRDLC 報表無法設定每頁顯示標題列
RDLC 呈現多頁報表時,預設並不會每頁重新顯示標題列。關於標題列要不要重複,Tablix Properties 有相關選項:如下圖所示,Row Headers 跟 Column Header 都有 Repeat headers rows/columns on each page 選項可勾選。經實測,這選項根本沒用啊,就算勾選也只有第一頁會出現標題列。爬文發現當報表為表格式配置(另一種是矩陣式...
View Article使用非 IE 瀏覽器列印 Reporting Service 報表
曾被 Reporting Service 報表列印 ActiveX 元件版本問題惡整過,在羚羊簇擁之下一路初探、二探到三探,記憶猶新。造成我有個根深蒂固觀念-ReportViewer 藉由 ActiveX 元件解決列印需求,所以在非 IE 瀏覽器上不能直接從網頁印報表是天經地義的事,遇到同事詢問,我的回答都是「無解」。但前陣子研究使用 Visual Studio 2017 開發 RDLC...
View Article