Browse by Tags
All Tags
»
.NET
»
KB
(
RSS
)
ASP.NET
MSDTC
ORACLE
SQL 2000
SQL 2005
Tips
Trouble-Shooting
中文編碼
潛盾機
MEMO-取回Oracle Procedure Ref Cursor
[MEMO系列是老人家備忘用途的貼文,可能沒什麼營養,大家請姑且看之或逕行忽略。] 好久沒跟ORACLE纏綿惹,這陣子都在跟SQL Server廝混。這幾天接手另一個連線ORACLE的專案,在呼叫ORACLE Procedure透過Ref Cursor傳回結果時,腦中已不太記得精確寫法,只記得Ref Cursor的值可以直接用來Fill DataTable或轉成OracleDataReader,胡亂湊出程式碼,系統卻一直傳回以下錯誤: ORA-06550: line 1, column 7:.PLS...
CODE-Reflection範例
Reflection是在執行期間才解析物件類別資訊的技術,在不少場合,要處理的物件類別在編譯時期是無法預知的,或是希望能保留彈性,以便接受包容各種物件。當傳進來的物件參數類別是object,卻又想一探它的底細,就是System.Reflection命名空間神奇工具組上場的時候。 印象中Reflection與編譯期確定型別相比,效率頗差,每次要動用時總有些畏首畏尾的。但我後來發現MS在BCL內,自己倒用Reflection用得很盡興,加上新一代的CPU愈來愈快,效能差異的顯著性正大幅降低。慢慢地我才開始比較大膽應用它解決問題...
Stopwatch.ElapsedTicks的祕密
這次的 程式魔人賽 ,在先前的範例中,用的是Stopwatch.ElapsedTicks做為計數單位。 發現一件好玩的事,我在自己的機器上用DummyPlayer來跑,每一次就算胡亂猜也要近1,000 Ticks。但我接到一組參考數字,DummyPlayer在Q9300上跑,每次大約10-20 Ticks!! 不會吧?? Q6600 輸Q9300這麼多?? 接著,更扯的事出現了,另一組DummyPlayer在PentiumD 920上的測試數據,Ticks數也不到100,我的Q6600是中了詛咒嗎...
ORACLE Transaction大車拼!
為了測試使用System.Data.OracleClient、ODP.NET(Oracle.DataAccess.Client)與 TransactionScope 三者的效能差距,我設計了以下的實驗,分別用三種方式(因ODP.NET 9207還不支援TransactionScope,所以TransactionScope搭配System.Data.OracleClient使用)將三個Insert動作包成Transaction,並各測十次。 static object obj = new object...
StringBuilder串接字串的迷思
大部分的.NET開發者都知道,要做大量的字串相加,StringBuilder比string相加 快上N倍 。這個效能差異源於String物件的特性,每次"動態相加"時必須捨棄原字串佔用的記憶體空間,重新配置記憶體儲存相加後的新字串內容。只是背後的原理實在曲折,於是我們腦海只會留下" 串接字串千萬要用StringBuilder,用string相加會被人笑 "的簡化結論。 前些時候協助做Code Review,看到一段SQL查詢程式出現有趣的寫法。 一般為了方便閱讀...
Finally...
上了一課! 我寫了一段Code,利用catch SqlException 偵測Deadlock , 前兩次延遲一小段時間再試,第三次則直接丟出Exception。在少數特殊情境下,程式要先切換成特定使用者身份,待處理完成後再切回系統身份。程式示意如下: 1: try 2: { 3: for ( int i = 0; i < 3; i++) 4: { 5: try 6: { 7: if (needImpersonate) 8: changeIdentity(someUser); 9: doTheProcess...
KB-Keep Your Code Thread-Safe!
前幾天幫同事看一個WinForm問題,明明有Primary Key限制的DataTable,卻冒出數筆PK相同的資料,Grid還會發狂似地不斷捲動。 由於資料的更新動作來自非UI Thread,我們首先懷疑的就是Threading Issue,不過該問題只出現在尖峰時刻資料量爆多的情境下,在測試台中怎麼都無法模擬出來,於是我設計了以下的實驗,證明忽略Thread-Safe Issue時的確會衍生類似的問題。 程式是這樣寫的,Form_Load時建立一個DataTable,並以Symbo欄位l為Primary...
TIPS-How to write an license agreement dialog?
最近有個需求,要在Windows Form中做出如下的軟體授權同意畫面,使用者必須閱讀完授權書晝面,按下"接受"才可以繼續使用。(會仔細讀軟體授權書的人請舉手! 那個戴眼鏡的胖子,你確定你有? 要誠實哦... 很好,跟我想的一樣,Nobody!) 以下是我這次想出來的寫法,有幾項特色,介紹給還不熟Windows Form的朋友參考: 第一,由於授權書圖文並茂、還有一堆排版設定,我決定用Word將它存成rtf後,再直接用RichTextBox載入,超級省事!! 第二,不想跟著一個rtf檔拖油瓶,我希望能效法綠色軟體一個EXE檔打死...
KB-UTF8Encoding And BOM
static void TestXMLWriter() { MemoryStream ms = new MemoryStream(); XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8); xtw.Formatting = Formatting.Indented; XmlDocument xd = new XmlDocument(); xd.LoadXml( "<Group><User>Jeffrey</User><...
Self Test - Value Type vs Reference Type
一個小測驗,請用大腦編譯並執行以下的程式,試著回答Q1-Q7的結果為何? 這個測驗可以檢定你是否對.NET的Value Type與Reference Type已有正確認識。 struct MyStruc { public string Name; public string Data; public MyStruc( string name, string data) { Name = name; Data = data; } public override string ToString() ...
KB-Deadlock Detection And Retrial Sample
最近在處理表單引擎的Deadlock問題,由於引擎核心以物件導向方式開發,很難為了資料庫的更新問題去挪動物件的呼叫順序。但還是努力做了調整,每天Deadlock的發生次數終於壓到個位數,但要100%避免看來是不可能的(至少以我的能力來說是如此)。既然逃不掉,就乖乖面對吧! 一般處理Deadlock的準則是Wait And Retrial,換句話說,程式邏輯本身並沒有任何錯誤,純粹是運氣不好,跟其他Process的資料庫更新作業強碰且被SQL Server挑中變成犠牲品,在絕大部份的情況下,在我們接到Exception的同時...
TIPS-Excute EXE And Get Its Output From .NET
如果大家跟我一樣,常整合外部程式搞一些有的沒的,那一定可以用到這個函數。 它最常見的情境是整合一些好用的命令列工具(通常是用來查詢資訊),把它辛苦執行的結果佔為已有。例如: netstat -oa可以列出機器的網路連線狀況。如果我們希望要在.NET程式中提供這類資訊,要怎麼寫? 我們當然可以設法想辦法四處張羅Library、Windows API、WMI... 在程式中實作出類似的效果。 另一種鋸箭式的思考是"撿現成"!! 由我們的程式呼叫netstat.exe, 再去解讀它的輸出結果。其實,這種Pipeline的觀念...
Introduction To .NET Regular Expression
試想以下的情境: 公司最近要研發一套類似Google的網頁搜索引擎,你負責開發網頁擷取器核心,其中最棘手的部分是要具備由一個網頁再延伸至其所超連結出去的其他網頁… 行銷人員拿來一份十萬筆客戶地址檔,請你解析出縣市、郵遞區號、地址三個欄位轉入CRM系統,但要命的是原始資料雜亂不已,有的郵遞區號在前,有的在中間… 你加入了檢索引擎過濾器(Filter)的開發團隊,目標是將各式資料檔中的純文字部份提取出來,你的第一件任務是簡單的HTML檔案解析,但是,HTML原始碼千變萬化… 以上的挑戰當然不是每位程式開發者都有機會遭遇...
KB-SQL UDF for Compression
最近要對付一個每天狂長的痴肥資料庫,由於要保全交易相關證據供日後追查,資料表必須保存往來交換的XML原始檔案。XML格式向來以冗長囉嗦聞名,加上每日交易量愈來愈大,資料庫面臨空間不足及備份管理的壓日益沈重。於是我決定雙管齊下改善這個問題: 第一,將過期資料定期搬到另一個資料庫,就可以採行較寬鬆的備份策略,不用每天反覆備份鉅量歷史資料,時間與空間都較省。第二,我打算祭出壓縮大法,逼XML資料瘦身。 以往在.NET 1.1時代,不難找到Open Source的壓縮Library,例如: SharpZipLib...
KB-W3SVC throw 0x800703e9 exception
今天幫忙排除一台主機的IIS問題,只要執行特定網頁,就會出現以下訊息: JIT偵錯失敗,發生以下錯誤: 存取被拒。 JIT偵錯是使用者帳戶'NT AUTHORITY\NETWORK SERVICE'所啟動。 如需詳細資訊,請在文件索引中查看'Just-in-time偵錯,錯誤'。 事實上,這是一個表面的錯誤訊息,根本的問題不在於執行權限不對,或是有人Debug Web App失敗,而是執行ASP.NET的底層的.NET程式發生錯誤所致。真正的錯誤訊息則可以在事件檢視器中看到,W3SVC發出了以下的錯誤...
更多文章
下一頁 »
搜尋
Go
<
February 2023
>
Sun
Mon
Tue
Wed
Thu
Fri
Sat
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
【廣告】
OrcsWeb: Windows Server Hosting
最新回應
2018-09-20 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大,謝謝您!
2018-09-20 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 感謝您,已成功將count後的數值寫入資料庫 利用您提供的方法...
2018-09-19 Jeffrey
KO範例6 - 陣列元素的新增/移除事件
to Andy, 如果你 ASP.NET 端是用 PostBack 方式取值,最簡單的做法是將...
2018-09-19 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 您好 我設計一個網頁,裡面有一些TextBox,其中還有如此範例的動態表格...
2018-09-18 Jeffrey
Windows 停用 TLS 1.0 之配套作業整理
to 接手老專案的菜鳥, support.microsoft.com/.../support...
2018-09-18 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大: 我有個系統是.NET 2.0開發的,如果安裝了.NET 4.5/或者4.6以及ADO...
2018-09-17 Jeffrey
CODE - WebClient 下載檔案自動取得檔名
to Slash, 感謝提醒,程式已修改強化。
2018-09-16 Slash
CODE - WebClient 下載檔案自動取得檔名
雖然與你分享這段小程式的目的不同,但還是要提醒Regex.Split這邊會有RFC5987的問題...
2018-09-06 打雜工程師
ASP.NET Core 值得學嗎?
黑大,我再跟BOSS討論看看,謝謝您^^
2018-09-03 Jeffrey
ASP.NET Core 值得學嗎?
to 打雜工程師, 1) 如果系統上線時程吃緊且不容閃失,用 ASP.NET MVC...
Tags 分類檢視
.NET
.NET Core
AJAX
Android
AngularJS
ASP.NET
ASP.NET MVC
ASP.NET保安
Autofac
Bicycle
C# 4.0
CODE
Coding4Fun
Collections
Community Server
Cordova
CSS
Dapper
Debug
EF
English
Entity Framework
Excel
Hiking
HTML5
IE
IIS
Java
Javascript
jQuery
JSON
KB
Kendo UI
knockoutjs
Life
Linq
Live SDK
Lucene.Net
Mobile
MSDTC
NLog
NuGet
OAuth
Open XML
ORACLE
Performance
PowerShell
Reporting Service
RESTful Web Service
Security
Sharepoint
SignalR
Silverlight
Skype
SQL
SQL 2000
SQL 2005
SQL 2008
SQLite
T4
TechEd
TFS
ThinkPad
Tips
Tools
Trouble-Shooting
TypeScript
Unobtrusive Validation
VBScript
Virus
Vista
Visual Studio
VS Code
VS.NET 2003
VS2005
VS2008
VS2010
VS2012
VS2013
VS2015
VS2017
Vue
WCF
Web
Windows 10
Windows 2008
Windows 2012
Windows 7
Windows 8
Windows Phone
Work
WP7
WPF
中文編碼
慢跑
潛盾機
科學實驗
自動測試
閱讀筆記
風花雪月
關於作者
一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"
有為的中年人
"自許。
文章典藏
September 2018 (5)
August 2018 (12)
July 2018 (8)
June 2018 (6)
May 2018 (19)
April 2018 (14)
March 2018 (10)
February 2018 (10)
January 2018 (14)
December 2017 (22)
November 2017 (12)
October 2017 (16)
September 2017 (9)
August 2017 (13)
July 2017 (16)
June 2017 (17)
May 2017 (9)
April 2017 (13)
March 2017 (15)
February 2017 (14)
January 2017 (12)
December 2016 (8)
November 2016 (11)
October 2016 (15)
September 2016 (11)
August 2016 (19)
July 2016 (16)
June 2016 (14)
May 2016 (20)
April 2016 (13)
March 2016 (15)
February 2016 (11)
January 2016 (16)
December 2015 (12)
November 2015 (15)
October 2015 (14)
September 2015 (25)
August 2015 (16)
July 2015 (13)
June 2015 (11)
May 2015 (12)
April 2015 (15)
March 2015 (17)
February 2015 (9)
January 2015 (12)
December 2014 (12)
November 2014 (15)
October 2014 (12)
September 2014 (22)
August 2014 (16)
July 2014 (17)
June 2014 (18)
May 2014 (11)
April 2014 (10)
March 2014 (14)
February 2014 (14)
January 2014 (4)
December 2013 (12)
November 2013 (11)
October 2013 (13)
September 2013 (15)
August 2013 (12)
July 2013 (13)
June 2013 (16)
May 2013 (20)
April 2013 (22)
March 2013 (15)
February 2013 (9)
January 2013 (10)
December 2012 (14)
November 2012 (10)
October 2012 (12)
September 2012 (30)
August 2012 (16)
July 2012 (17)
June 2012 (18)
May 2012 (9)
April 2012 (15)
March 2012 (12)
February 2012 (8)
January 2012 (6)
December 2011 (9)
November 2011 (11)
October 2011 (15)
September 2011 (15)
August 2011 (18)
July 2011 (24)
June 2011 (31)
May 2011 (16)
April 2011 (13)
March 2011 (13)
February 2011 (11)
January 2011 (15)
December 2010 (18)
November 2010 (12)
October 2010 (10)
September 2010 (18)
August 2010 (19)
July 2010 (22)
June 2010 (20)
May 2010 (19)
April 2010 (19)
March 2010 (24)
February 2010 (14)
January 2010 (24)
December 2009 (13)
November 2009 (14)
October 2009 (27)
September 2009 (20)
August 2009 (18)
July 2009 (18)
June 2009 (22)
May 2009 (14)
April 2009 (19)
March 2009 (17)
February 2009 (25)
January 2009 (16)
December 2008 (23)
November 2008 (20)
October 2008 (19)
September 2008 (21)
August 2008 (10)
July 2008 (16)
June 2008 (20)
May 2008 (20)
April 2008 (21)
March 2008 (18)
February 2008 (9)
January 2008 (18)
December 2007 (20)
November 2007 (22)
October 2007 (20)
September 2007 (23)
August 2007 (22)
July 2007 (19)
June 2007 (27)
May 2007 (22)
April 2007 (23)
March 2007 (23)
February 2007 (17)
January 2007 (9)
December 2006 (12)
November 2006 (15)
October 2006 (7)
September 2006 (9)
August 2006 (16)
July 2006 (14)
June 2006 (12)
May 2006 (12)
April 2006 (9)
March 2006 (4)
February 2006 (7)
January 2006 (8)
October 2005 (1)
August 2005 (1)
July 2005 (1)
June 2005 (2)
February 2005 (2)
January 2005 (5)
February 2004 (2)
January 2004 (13)
其他功能
這個部落格
Home
Syndication
Comments RSS