close
1.前言
在做檔案處理時,需要將檔案轉換成DataTable後,再進行後續如DataGridView顯示資料,或是將檔案寫入資料庫。
2.說明
文字檔案例如CSV格式是以逗號區隔資料,利用StreamReader讀取資料寫入DataTable中。
public DataTable TxtConvertToDataTable(string File, string TableName, string delimiter) { DataTable dt = new DataTable(); DataSet ds = new DataSet(); StreamReader s = new StreamReader(File, System.Text.Encoding.Default); //string ss = s.ReadLine();//skip the first line string[] columns = s.ReadLine().Split(delimiter.ToCharArray()); ds.Tables.Add(TableName); foreach (string col in columns) { bool added = false; string next = ""; int i = 0; while (!added) { string columnname = col + next; columnname = columnname.Replace("#", ""); columnname = columnname.Replace("'", ""); columnname = columnname.Replace("&", ""); if (!ds.Tables[TableName].Columns.Contains(columnname)) { ds.Tables[TableName].Columns.Add(columnname.ToUpper()); added = true; } else { i++; next = "_" + i.ToString(); } } } string AllData = s.ReadToEnd(); string[] rows = AllData.Split("\n".ToCharArray()); foreach (string r in rows) { string[] items = r.Split(delimiter.ToCharArray()); ds.Tables[TableName].Rows.Add(items); } s.Close(); dt = ds.Tables[0]; return dt; }
3.應用
DataTable dt = TxtConvertToDataTable(fileName, "tmp", ",");
文章標籤
全站熱搜