我正在开发一个项目,我需要读取一个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