【问题标题】:Reading CSV data with oleDBConnection into a C# DataSet and adding column headings使用 oleDBConnection 将 CSV 数据读入 C# DataSet 并添加列标题
【发布时间】:2017-10-13 23:48:34
【问题描述】:

我有一个 .csv 文件,我正在通过 OLEDBConnection 将其读入 C#。我正在将它加载到数据集中。这一步工作正常。我在 .csv 文件中的数据没有任何标题数据/列标题。我想在 C# 中将列标题添加到我的数据集中,而不是直接添加到 .csv 文件中。如果我尝试添加列标题,那么它只会在数据末尾创建一个新列,但是我想将标题添加到已有数据的现有列中,而不是创建一个新列。

【问题讨论】:

    标签: c# csv dataset


    【解决方案1】:

    只需使用索引访问列并更改名称

    DataTable table = your datatable;
    table.Columns[0].ColumnName = "Foo";
    

    【讨论】:

    • 感谢您现在让我能够添加列标题。但是添加列标题意味着我现在丢失了我的第一行数据,因为列标题覆盖了我的第一行。我显然需要保持所有数据完好无损,只需在第一个数据行之前添加列标题。
    • 您的代码“table.Columns.Add”中是否有类似的内容,您能否分享这部分代码。通常的做法是读取第一行并将值分配为列名。我认为您正在做类似的事情
    • 不,我没有使用tables.Columns.Add,因为它会在现有列上附加一个新列。我已按照您的建议使用 table.Columns[0].ColumnName ,这正确标记了第一列,但这样做会删除第一行数据。我将在新评论中发布代码。
    • 使用 (var conn = new OleDbConnection(connString)) { conn.Open(); var query = "SELECT * FROM [" + Path.GetFileName(fileName) + "]";使用 (var adapter = new OleDbDataAdapter(query, conn)) { adapter.Fill(dt); } dt.Columns[0].ColumnName = "Column1"; dt.Columns[1].ColumnName = "Column2"; }
    • 确定你的连接字符串中有 HDR=No。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2012-03-07
    相关资源
    最近更新 更多