Browse by Tags

.NET Formatting - 負數加括號
string.Format() 都用了好多年,今天有同事分享我才學到,原來它也支援負數時用括號包位的會計表示法,虧我以前還自己寫過判斷式DIY自行處理... 現在看來真笨。 Console.WriteLine( string .Format( "{0:#,0.00;(#,0.00);-}" , -1234.56)); Console.WriteLine( string .Format( "{0:#,0.00;(#,0.00);-}" , 1234.56));...
TIPS-用ADO.NET寫入BIG5罕用字到ORACLE VARCHAR
上回我們破解過" 用ADO.NET讀取ORACLE VARCHAR中的BIG5罕用字 ",今天又有人出了難題--如何將BIG5罕用字寫入ORACLE VARCHAR2欄位? 經實驗,單純用cmd.Parameters.Add("param", OracleType.VarChar).Value="含罕用字/造字的字串",則所有的罕字與造字在資料表中會變成問號。我猜與讀取時面對的問題完全相同,資料從網路接收到OracleClient解析完成的過程中...
關於AssemblyVersion的一點小事
用Visual Studio寫程式的人,不知有沒有注意過AssemblyInfo.cs裡的這個屬性: [assembly: AssemblyVersion("1.0.*")] 如果你有手動去修改過它,恭喜你! 代表你參與的專案已達一定規模,或是你寫的程式跟元件已經在外開枝散葉,子孫多到要用什麼" 字輩 "來搞清楚血緣尊卑。XD 不過,或許有些人還不知道微軟版本號碼裡四個數字的用法,可能也不知道Visual Studio專案中版號設成1.0.*時的自動跳號規則...
Posted 29 July 2008 08:35 PMJeffrey | 4 comment(s)
Filed under: ,
TIPS-如何將HTML色碼轉成.NET Color Object?
要怎麼把#77aaff這種HTML色碼轉成.NET中的Color物件呢? (我最常用到的情境是將設計師配好的色系套在WinForm上) 多說無益,直接看Code,解說都放在註解中: static void testColorTrans() { Color c; //我有一個HTML色碼,要怎麼換成.NET Color物件呢? string htmlClr = "#77aaff" ; //有了,Color.FromArgb可以用 c = Color.FromArgb(Convert...
Posted 28 April 2008 09:51 AMJeffrey | with no comments
Filed under: ,
TIPS-SqlConnection的ConnectionString保密機制
在設計資料庫相關程式時,連線字串最好能以加密方式存在config檔案裡;再進一步,最好連解密字串的機制都封裝在特定的資料存取元件中,開發人員及呼叫端程式只需傳入SqlCommand或更高階的抽象化資料物件,就可以完成資料庫存取作業,不必也不能得知連線字串的相關細節。 只是依我自己的實務經驗,有時直接傳連線物件(SqlConnection)給呼叫端是較省事的做法(丟一個連線給你自己玩,別來煩我! 是有點不負責任,但元件開發者未必有時間陪著在每個案子中抱著各式不同的需求打滾),連線丟出去了,呼叫端來個SqlConnection...
TIPS-SELECT DISTINCT IN ADO.NET
ADO.NET裡的 Select() 提供部分類似SQL的查詢功能,例如: 簡化版的 LIKE (%只能放前後,不能擺中間),但有些基本的SQL語法還是做不到的,例如: DISTINCT。 微軟曾針對ADO.NET 1.1提出過 解決方案KB ,但所謂的DataSetHelper,複雜度看來跟自己DIY沒差多少,只差在是MS提出的官方範例。所幸,在ADO.NET 2.0裡, DataView.ToTable() 終於將DISTINCT的功能歸為內建,我們可以直接匯出一個只包含指定欄位的DataTable...
Posted 21 February 2008 12:27 AMJeffrey | with no comments
Filed under: ,
我的第一支Linq小品
VS2008裡最革命性的改變應該就是Linq,雖然已改用VS2008好幾個月,但都是在趕些急如星火的ASP.NET 2.0專案,因此到目前為止只享受到Javascript Intellisense等周邊的IDE改良。 今天喘口氣,切換去處理另一個任務,裡面剛好有個需求,要寫個小工具做批次資料轉換。由於是一次性作業,平台語言可完全自訂,加上程式邏輯簡單,這種機會不拿來練功,下次不知要等到民國幾年。設好停損點(註: 如果多久沒搞定就放棄,改回用.NET 2.0寫),捲起袖子寫了我第一支應用Linq的小品程式...
Posted 31 January 2008 06:09 PMJeffrey | with no comments
Filed under: , ,
Unit Test Reference Issue
在Visual Studio中跑單元測試,遇到以下訊息: Failed to queue test run 'jeffrey @MyMachine 2008-01-17 09:31:03': Test Run deployment issue: The location of the file or directory 'R:\Assembly\Utility.dll' is not trusted. 訊息很明確,R:是一台網路磁碟機,預設來自非本機的.NET Code在使用上會被設限...
Posted 18 January 2008 09:13 AMJeffrey | with no comments
Filed under: , , ,
TIPS-Escape { } in String.Format
一個很小很小的問題,只是以前都很鄉愿地繞路避開,今天終於肯花時間找到正解: static void StringFormatTest( string custCode) { string s = string .Format( @" function blah() { {0} }" , custCode); Console.Write(s); } 以上的寫法,在執行時會跑出 System.FormatException: Input string was not in a correct...
Posted 15 January 2008 01:30 PMJeffrey | with no comments
Filed under: ,
Smart C# Compiler
前陣子幫同事追查問題,由於懷疑主機上的程式版本有誤,便找來Source Code,與Reflector反編譯(Decompile)主機上DLL得到的Code比較,在一段程式上發現了小小的差異: Souce Code裡是先將DropDownList的SelectedValue先存到變數中,再將該變數當成呼叫另一個函數的參數;而Reflector中看到的卻是直接將DropDownList.SelectedValue直接被當成呼叫另一函數的參數。 程式寫法的差異,讓人懷疑上線的程式版本有誤。但同事印象中從頭到尾不曾用過這種寫法...
.NET變數該正名就正名,別再牽拖囉!
今天驚聞有人Copy程式碼,連變數名稱都懶得改。原本的日期欄位,明明已經改放公司統編,居然還沿用txtDate的欄位名稱,隱蔽與欺敵效果十足,接手維護到這等”全方位防駭型”程式碼,真是情何以堪… (老話一句,遇此情況,最好順便檢討一下平時是否有心懷不軌、負心劈腿、濫發好人卡等缺德行徑,才會遭此天譴~~ 無則嘉勉,有則改之) 講到變數正名,有人開始碎碎念: 改變數名稱很麻煩耶! 用Replace All會出亂子,例如: 想把變數名稱user換成customer,若是胡亂全面取代,到時連select...
TIPS-C1FlexGrid Header Cells Merging
為了要在C1FlexGrid中做出如下Header Cell合併的效果,煞費苦心... 簡單來說,這類的合併效果必須繼承C1FlexGrid再做一顆自訂元件,並Override GetMergeCell這個函數,判斷傳入的Row/Col數是否屬於合併範圍決定傳回值。而GetMergeCell在UI重畫過程中會被高速連續呼叫,函數中的邏輯要盡可能簡化,並避免掉所有不必要的運算,否則就等著在執行階段看你的CPU破表吧! public class CustC1FlexGrid : C1FlexGrid...
Coding Smarter Tips 2
寫完 第一篇 ,發現要分門別類整理工程浩大,而且要拖上很久才能累積出足夠Flush的量,索性改成想到什麼寫什麼的大雜燴好了,有點像用Response.Buffer=false;改善使用者的互動感受,哈! static void Tips2() { //**String轉成不同編碼的Byte Array string s = "丁丁是個人才" ; byte [] buffBIG5 = System.Text.Encoding.GetEncoding( "big5" ).GetBytes(s); byte...
Windows Form AutoScaling
寫Windows Form的人應該都會面對這類問題。 一直跑得好好的程式傳來噩耗,在某某大官的機器上圖歪字斜,最要命的是老爺子找不到送出鈕可按,正暴怒中。戒慎恐懼地前往"命案現場"(沒處理好的話,馬上就是了)查看,載著厚重老花眼的層峰長官,怒指著LCD控訴你寫的什麼鬼表單,居然沒有送出鈕。定神一看,媽呀! 設成800X600還加大字型(120DPI),原本精巧可愛、手帕大小的表單,現在大如床單,一個個國字猶如魚丸,按此比例推算,原本在右方的送出鈕現在應該位於隔壁祕書Partition隔板的分機表上...
TIPS-Remove Invalid Characters From XML Document
遇到一個問題,用 LogParser 擷取系統事件寫成XML檔,要分析XML時,卻因為ASP.NET 2.0傳回了一個XML內容含有不合法字元的錯誤事件而導致XmlDocument.Load()發生錯誤。 ASP.NET 2.0的錯誤是: Exception type: XmlException Exception message: '' , hexadecimal value 0x08, is an invalid character. Line 11, position 12. 很妙的是,上面那個單引號所夾的...
更多文章 下一頁 »

搜尋

Go

<January 2009>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
最新回應


BlogLook Score and Rank

Syndication