2014年1月28日 星期二

TryParse,讓轉型更加安全

            //轉換前
            string s = "";
            
            //轉換後
            double d;

            //此方法傳回bool
            //若s為Null或不可轉為double的值,傳回false
            bool b = double.TryParse(s, out d);

            if (b) 
            {
                //do something...
            }
參考原文MSDN
這真是太棒了,不用再寫一大堆驗證使用者輸入的程式碼,
只要判斷傳回值就可以做下一步了,
效能的話很多人測出來都不一樣,有興趣再去查查吧。

2014年1月27日 星期一

OleDbCommandBuilder出現 INSERT INTO 陳述式的語法錯誤

原文在此
原本用SQL Sever都沒這問題,一換Access馬上不行,
其實我看不太懂,總之就是類似跳脫字元那種意思,中括弧Access不認得

加上:
            cb.QuotePrefix = "[";
            cb.QuoteSuffix = "]";

2014年1月26日 星期日

DataTable.Select()

Select()傳回的是DataRow[]
我沒注意用DataTable接,編譯還不會出錯,
結果一直得不到要的數據,

欄位=條件

中間的運算子可以改變,也可用AND OR
模糊查詢運算子用 LIKE,條件前後加%
條件若是字串要加單引號
            //假設前面都已經載入資料,且有個名為dataTable的DataTable
            //這邊把字串前後拆開,可以搜尋不同欄位和條件,增加靈活性
            string s = type + " Like '%" + inquireStr + "%'";
            DataRow[] dataRow = dataTable.Select(s);

            //這是暫時用的,職責是傳回查詢結果
            DataTable dataTable_tmp = dataTable.Clone();

            //用迴圈把DataRow[]一個個加進暫時用的Table
            foreach(DataRow addRow in dataRow)
            {
                dataTable_tmp.ImportRow(addRow);
            }

            return dataTable_tmp;

鋼鐵墳墓 Escape

史特龍和阿諾這兩個也太會演了,
劇情蠻緊張的,
不過美式英雄主義還是有,
例如壞人的子彈都打不到主角~

二維List

最近在做資料庫專題的時候突發奇想,
能不能把List<T>疊起來做成陣列,
依照網路上的資料整理了一下
等於是{9,8;
             6,5}

           //這就是 List 陣列
            List<List<string>> ss = new List<List<string>>();

            //加入9、8再加入6、5
            List<string> s = new List<string> { "9", "8" };          
            ss.Add(s);
            s = new List<string> { "6", "5" };
            ss.Add(s);

            //用2個 foreach 取出來
            foreach (List<string> a in ss)
            {
                foreach (string b in a)
                {
                    Console.WriteLine(b);
                }
            }
            Console.Read();

2014年1月19日 星期日

決戰終點線 RUSH


F1賽車題材的電影,精彩的競速場面是賣點之一,
但貫穿全片的是兩人的友誼,個性完全不同的兩人,
一個是放蕩不羈的浪子,一個中規中矩理性思考,
兩人都有賽車的才華,從最初的互相敵視、扯後腿,到後面的相知,相當值得一看。

2014年1月18日 星期六

五月天 知足 吉他彈唱 (Mayday guitar cover)




很慢,很慢,很慢的歌,請用平靜的心欣賞!

琴齡:1年6個月
Key:C#(原調C)
Capo:1(原調0)
Play:C
作曲:阿信
作詞:阿信
錄影:iPhone5s
錄音:ZOOM H1 

沒對到焦
這首歌也可以彈的很簡單,但是想挑戰一下間奏的部分,
冬天的關係,練滑弦的時候受傷了好幾次~

2014年1月16日 星期四

編程創藝-編寫出卓越的程式碼

作者:Pete Goodlif
譯者:蔡學鏞
出版社:碁峰資訊
ISBN:9789861818382

這本書有一半不是在說技術方面的東西,而是某些比技術更重要的東西,
一些細節部分別的書根本不會提及,這本書倒是讓我開了眼界,
不講艱澀的語法,不講設計模式,
前半段是對個人修養、如何打造"卓越"的程式碼,
後半段講求各式軟體架構、團隊合作。
目前還沒遇過大型團隊的專案,所以後面的部分其實看不太下去,
日後技術更成熟了,接了大型專案,這本書值得再回頭看。

重點筆記:
1、莫非定律:凡是有可能會出錯的事,都一定會出錯,所有的狀況都要以最壞來做設想。
2、寫每一行時都三思,可能會有什麼錯誤?
3、程式設計的目標是清晰,不是精簡。
4、變數的宣告最好與它的使用位置接近。
5、程式碼的撰寫風格,力求一致。
6、變數通常為名詞;方法通常為動詞;類別則見機行事。
7、文件化的程式碼:最高境界!程式碼清晰到不須註解、文件。
8、避免神奇數字,任何數字都應該要設為變數。
9、註解要說明為什麼這麼做,而不是說明這段在幹嘛,這可以靠閱讀程式碼得知。
10、測試越早進行越好,等到最後一堆物件耦合了,那才是地獄...
11、正確的程式碼遠比速度快的重要,快速地得到錯誤的結果毫無意義。
12、迪米特法則,善用封裝維持安全的程式碼。
13、團隊、謙虛、提升、體貼、熱情
14、程式碼是給人讀的,不是給機器讀的。

題外佳句:
1、不可按表面斷定是非,要按公平斷是非 <新約聖經>
2、鏗鏘有力之文必定簡潔 <小威廉斯特倫克>
3、想寫出好東西,源頭和基礎在於明智的想法 <賀瑞斯>
4、卜人之未卜,乃當世聖明 <奧斯卡.王德爾>
5、熱愛真理,寬恕錯誤 <福泰爾>
6、人總會犯錯,悔過就是聖人,不改就是惡魔 <班傑明.富蘭克林>
7、任何人膽敢用超乎自己力量的裝置,都會身陷危險 <JRR.托爾金>
8、我從來沒有失敗過,我只是發現了一萬種行不通的方法 <湯瑪斯.愛迪生>
9、你經歷多年建造的建築物,在一夜之間可能被摧毀,無論如何,仍要繼續建造 <德雷莎修女>
10、人生要不是大膽的冒險,便是一無所獲 <海倫.凱勒>
11、越是尋找安全感,擁有的安全感就越少 <博恩.崔西>
12、跳出極度複雜,就是極度簡單 <溫斯頓.邱吉爾>
13、成功公式中最重要的一個因素,就是知道如何與人相處 <西歐多爾.羅斯福>
14、如果你沒有被批評過的話,那證明你沒做過多少事 <唐納德.拉姆斯菲爾德>
15、你希望人怎樣待你,你也要怎樣待人 <路加福音>

二分搜尋法

最近接觸到二分搜尋法,雖然沒有說明得很深入,但基於研究的精神,還是實作了一個出來

開發環境:
.NET Framework 4.5.1
Visual Studio 2013
C#

下載位置:點選後按右下角下載 http://goo.gl/SFNlKj

UI介面:

流程圖:

程式碼片段:

2014年1月15日 星期三

Google縮址服務

之前要貼網址有時候都一大坨,貼在LINE等通訊軟體上,看了就不想點
不過利用Google縮址服務可以解決這個問題

連結:http://goo.gl/



超簡單,把原網址複製貼上,短網址就出現了,還有歷史紀錄可以查詢