【发布时间】:2011-03-19 09:24:51
【问题描述】:
我正在做一个项目,我需要读取一个 CSV 文件,然后用它的数据填充一个 DataSet。我一直在寻找,在 OleDB 中发现了一些有趣的东西。
我有一个类 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);
问题在于它解析第一行(标题行)就像列的 JUST ONE 标识符,我的意思是:这是 CSV 文件的标题:
Name, Product Name, Server, Vendor, Start Time, End Time, Host Name, User Name, Project Name, Usage time (hours)
然后是逗号分隔的所有数据。
当我读取文件时,填充数据集并打印 dt.Columns.Count 它表明它只有 1 列。
有什么帮助吗?
提前致谢。
【问题讨论】:
-
我的解决方案与 Jim Scott (stackoverflow.com/questions/1050112/…) 相同,但不起作用:S
标签: c# visual-studio