【问题标题】:Missing column of Dates in CSV file using Schema.ini file使用 Schema.ini 文件的 CSV 文件中缺少日期列
【发布时间】:2017-12-11 05:28:15
【问题描述】:

注意:回答我自己的问题是为了将来帮助别人。


我正在使用 OleDB 读取 CSV 文件:

DataTable csvTableSchema = new DataTable();

//Open the CSV
string csvFilePath = "C:\\temp\\WithDateColumn.csv";
var connString = string.Format(
    @"Provider=Microsoft.Jet.OleDb.4.0; Data Source={0};Extended Properties=""Text;HDR=YES;FMT=Delimited""",
    Path.GetDirectoryName(csvFilePath)
);

//To read the csv with DataTypes we specify the columns and their datatypes in the Schema.ini
//REF https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver

using (var conn = new OleDbConnection(connString))
{
    conn.Open();
    var query = "SELECT * FROM [" + Path.GetFileName(csvFilePath) + "]";
    using (var adapter = new OleDbDataAdapter(query, conn))
    {
        var ds = new DataSet("CSV File");
        adapter.Fill(ds);
        csvTableSchema = ds.Tables[0];
    }
}

这是 CSV 文件的样子:

这是 schema.ini 的示例

[ABC_20171128.csv]
Format = Delimited(|)
CharacterSet=ANSI
ColNameHeader=True
DateTimeFormat=dd MM yyyy hh:mm:ss

Col1 = Date DateTime
Col2 = AccountID Text
Col3 = SubAccount Text
Col4 = MarketCode Text
Col5 = SecurityCode Text
Col6 = Units Single

我尝试了不同的语法:

DateTimeFormat=dd MM yyyy hh:mm:ss

因此异常而失败:

System.Data.OleDb.OleDbException: '在文本文件规范'WithDateColumn.csv'中,DateTimeFormat 选项无效。'

DateTimeFormat=dd MM yyyy

此语法不会导致错误,但日期列是空的。

如何使用 Schema.ini 文件从 CSV 读取日期时间?

【问题讨论】:

    标签: csv datetime schema oledb


    【解决方案1】:

    原来 OleDB 在 DateTimes 中使用 nn 而不是 mm 表示分钟。

    所以正确的语法是:

    DateTimeFormat=dd MM yyyy hh:nn:ss

    参考隐藏在互联网上:http://forums.codeguru.com/showthread.php?333106-schema-ini-DateTimeFormat-legal-values

    我在官方文档中看不到这个:https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2015-12-05
      相关资源
      最近更新 更多