转自:http://www.dotblogs.com.tw/yilinliu/archive/2008/09/23/5452.aspx
透過OleDb的方式讀取csv檔常會遇到型別轉換的問題。
以機關OID為例,2.16.886.101.20003會被轉成2.1688。
若要解決這問題,就要參考微軟提供的這個設定檔的說明(http://msdn.microsoft.com/en-us/library/ms709353.aspx)。
- 將Schema.ini放置於與csv檔案相同的目錄中。(注意:檔名一定要是Schema.ini)
- 撰寫Schema.ini:
- 加入關聯的csv檔:(例如:[309040000E-20080910.csv])
- 第一行是否為欄位名稱(True/False):ColNameHeader=True
- 設定每一行的分隔符號:以Tab分隔(Format=TabDelimited), 以csv的逗號分隔(Format=CSVDelimited)
- 檔案編碼:(例如:CharacterSet=ANSI)
- 各欄位的資料格式設定:Coln(n表示順序)=CustomerNumber(欄位名) Text(資料型態) Width 10(資料長度)
- 設定OldDb的ConnectionString:Provider=Microsoft.Jet.OLEDB.4.0;Data Source={csv檔的目錄};Extended Properties