我正在開發一個項目,我需要讀取一個CSV文件,然後用它的數據填充DataSet。我一直在尋找,並且在OleDB中發現了一些有趣的東西。從CSV文件創建數據表
我有一個類CSVReader:
class CSVReader
{
public DataTable GetDataTable(string filePath)
{
OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Path.GetDirectoryName(filePath) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
conn.Open();
string strQuery = "SELECT * FROM [" + Path.GetFileName(filePath) + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strQuery, conn);
DataSet ds = new System.Data.DataSet("CSV File");
adapter.Fill(ds);
return ds.Tables[0];
}
}
我調用它從這裏:
CSVReader datareader = new CSVReader();
DataTable dt = datareader.GetDataTable(filepath);
的問題是,它解析的第一行(標題行)等只有一個標識符該列,我的意思是:這是CSV文件的標題:
Name, Product Name, Server, Vendor, Start Time, End Time, Host Name, User Name, Project Name, Usage time (hours)
而之後,所有的數據被逗號隔開。
當我讀取文件時,填寫數據集並打印dt.Columns.Count它顯示它只有1列。
任何幫助?
在此先感謝。
可能重複:// stackoverflow.com/questions/1050112/how-to-read-a-csv-file-into-a-net-datatable) – 2010-07-22 06:37:14
我的解決方案與Jim Scott相同(http://stackoverflow.com/questions/1050112/如何閱讀一個csv文件到一個網絡數據表/ 1050278#1050278),但它不工作:S – 2010-07-22 06:43:49