
說明:
每當專案本機測試完成後,會發佈到測試環境上,此時測試Server上的專案,如果有Bug,根本不知道哪裡有錯,也無法在程式碼下斷點,此時就需要Log來記錄錯誤訊息了。
在此介紹簡易的log紀錄程式碼放在需要紀錄的程式裡,再次發佈到Server上,就可以記錄Bug了!
/*以純文字檔案紀錄Bug資訊*/
using System.IO;

說明:
每當專案本機測試完成後,會發佈到測試環境上,此時測試Server上的專案,如果有Bug,根本不知道哪裡有錯,也無法在程式碼下斷點,此時就需要Log來記錄錯誤訊息了。
在此介紹簡易的log紀錄程式碼放在需要紀錄的程式裡,再次發佈到Server上,就可以記錄Bug了!
/*以純文字檔案紀錄Bug資訊*/
using System.IO;
問題:
使用Visual Studio寫C#,執行的時候出現error msg,如下,
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
意思為
未處理的'System.StackOverflowException'類型的異常出現在mscorlib.dll之中
說明:
使用TryParse()對字串轉型為int、decimal,並且有防呆功能,防止轉型錯誤。
//string轉decimal(外加防呆,不能轉型會進入error message)
string NumberA = "123.23";
decimal ChangeDecimal;
if (decimal.TryParse(NumberA, out ChangeDecimalOK) == true)
{
ChangeDecimal = NumberA;
}
else
{
//顯示error message
return null;
}
| InPut: |
| NumberA = "123.23" |

說明:
使用FileStream來寫入csv文件。
注意!此為寫入csv文件,一率覆蓋當前寫入文件的所有資訊,如果當前文件資訊不希望被覆蓋,可事先讀取當前csv檔案並存入string,寫入時將存入的string寫入csv檔案中,再做修改。
如何讀取csv檔案,可參考:
【C#】《oleDB》如何讀取csv(逗號分隔值)的資料

說明:
使用oleDB讀取純文字檔Text的資料,首先一般利用存文字檔存取資料類似Excel的功能,會有區隔每隔資料與每列資料的規則。
通常我們區隔每隔資料會以Tab鍵區分之。區隔每列資料會以換行之。
例如:
我們使用oleDB讀取Text的資料,跟之前寫的另外兩篇文章的流程與Code類似,但因為csv、Text沒有工作表,相對來講Code比較簡潔。

說明:
csv:Comma-Separated Values,逗號分隔值。
規則為輸入資料,以英數逗號","當作分隔,並且換行時不加逗號,直接換行,最後存成副檔名.csv格式即可。
例如:
我們使用oleDB讀取csv的資料,跟之前寫的另外兩篇文章的流程與Code類似,但因為csv、Text沒有工作表,相對來講Code比較簡潔。

說明:
利用Microsoft.Office.Interop.Excel來寫入Excel檔案。
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
//設定必要的物件
//按照順序分別是Application > Workbook > Worksheet > Range > Cell
//(1) Application :代表一個 Excel 程序。
//(2) WorkBook :代表一個 Excel 工作簿。
//(3) WorkSheet :代表一個 Excel 工作表,一個 WorkBook 包含好幾個工作表。
//(4) Range :代表 WorkSheet 中的多個單元格區域。
//(5) Cell :代表 WorkSheet 中的一個單元格。
Excel.Application App = new Excel.Application();
//取得欲寫入的檔案路徑
string strPath = "C:\\Test.xls";
Excel.Workbook Wbook = App.Workbooks.Open(strPath);

說明:
我們使用oleDB讀取Excel的資料,跟之前寫的另外兩篇文章的流程與Code類似,但因為csv、Text沒有工作表,相對來講Code比較簡潔。
【C#】《oleDB》如何讀取csv(逗號分隔值)的資料
http://ww0o0ww.pixnet.net/blog/post/66205084
【C#】《oleDB》如何讀取純文字檔Text的資料

說明:
我們來進行修改檔案的屬性為非唯讀、唯讀檔,如下圖,紅色部分為勾選唯讀或非唯讀檔案。
唯讀檔案通常不可被程式讀取、寫入,所以我們可以透過程式碼,將檔案屬性為唯讀改成非唯讀,以便程式對此檔案讀取、寫入。
首先設定檔案路徑。
C#的檔案讀取、寫入的路徑指定方式有兩種:
問題:
為什麼List 在add數次,總會被最後add的項目給覆蓋呢?
先來看看會被覆蓋的例子。
//要add的Model
public class ModelInfo
{
public decimal FieldA { get; set; }
public decimal FieldB { get; set; }
public decimal FieldC { get; set; }
}
public class comply
{
//new一個用List接的Model
List<ModelInfo> ModelInfoList = new List<ModelInfo>();
說明:
來看看C#獲取時間到毫秒的方式(今天、昨天、明天、日期比大小)
/*獲取今天日期(只有日期)*/
DateTime GetNowDate = DateTime.Today;
| Output: |
| 2014/1/21 上午12:00:00 |
/*獲取昨天日期(只有日期)*/
DateTime GetYesterdayDate = DateTime.Today.AddDays(-1);

問題:
OleDB讀取Excel、csv時,某些有資料的欄位卻是空值!?
這是...OleDB的硬傷,先說明一下他的淺規則~
讀取的資料都有行列,每一行的前8格(預設),Excel會解析這8格裡面最多格的型態,並將此行預設為此符合此型態才給讀取,否則為空值。
來看看我們的例子:
Input: