gpt4 book ai didi

c# - 从 CSV 文件创建数据表

转载 作者:太空狗 更新时间:2023-10-29 19:59:05 25 4
gpt4 key购买 nike

我正在处理一个项目,我需要读取一个 CSV 文件,然后用它的数据填充一个数据集。我一直在搜索,并且在 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);

问题是它解析第一行(标题行)就像列的唯一标识符,我的意思是:这是 CSV 文件的标题:

Name, Product Name, Server, Vendor, Start Time, End Time, Host Name, User Name, Project Name, Usage time (hours)

然后是逗号分隔的所有数据。

当我读取文件、填充数据集并打印 dt.Columns.Count 时,它显示它只有 1 列。

有什么帮助吗?

提前致谢。

最佳答案

我总是使用这个 CSV 库通过 C# 读取 CSV 文件,它对我来说总是很好。

http://www.codeproject.com/KB/database/CsvReader.aspx

下面是一个使用库读取 CSF 文件的例子

using System.IO;
using LumenWorks.Framework.IO.Csv;

void ReadCsv()
{
// open the file "data.csv" which is a CSV file with headers
using (CsvReader csv =
new CsvReader(new StreamReader("data.csv"), true))
{
int fieldCount = csv.FieldCount;
string[] headers = csv.GetFieldHeaders();

while (csv.ReadNextRecord())
{
for (int i = 0; i < fieldCount; i++)
Console.Write(string.Format("{0} = {1};",
headers[i], csv[i]));

Console.WriteLine();
}
}
}

关于c# - 从 CSV 文件创建数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com