【问题标题】:Filling a DataTable and Losing First Row填充数据表并丢失第一行
【发布时间】:2013-08-23 04:36:48
【问题描述】:

嘿,我正在使用 OleDB 驱动程序来查询 CSV 文件,然后将其加载到数据表中。但是,无论我做什么,它总是会跳过第一行。这是我得到的:

string connStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};" +
            "Dbq=C:/test;Extensions=csv,txt";


OdbcConnection objCSV = new OdbcConnection(connStr);
objCSV.Open();

OdbcCommand testCmd = new OdbcCommand("Select * from test.csv", objCSV);

OdbcDataAdapter testDA = new OdbcDataAdapter(testCmd);

DataTable testDT = new DataTable();

testDA.Fill(testDT);

所以看一些像这样的示例数据:

"IDX", "FirstName", "LastName", "Email" 
"340", "John", "Smith", "test@test.com"
"341", "Johnny", "Smithee", "test@test.com"

我总是只获得 1 条记录,无论那里有多少条记录,都会丢失第一条。有什么想法吗?

【问题讨论】:

    标签: c# csv datatable odbc oledb


    【解决方案1】:

    尝试告诉提供者有一个标题行,如下所示:

    string connStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};" +
            "HDR=Yes;Dbq=C:/test;Extensions=csv,txt";
    

    【讨论】:

    • 谢谢,我实际上发现我的问题是 csv 数据格式错误,我连接了我的问题的标题,但最后的标题缺少一个结束引号,所以它通过一切关闭。尽管如此,我不知道 HDR,这实际上证明对我很有用,所以谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2018-09-01
    相关资源
    最近更新 更多