참고 : 향후 다른 사용자를 돕기 위해 내 자신의 문제에 대답하십시오.Schema.ini 파일을 사용하여 CSV 파일의 날짜 열이 누락되었습니다.
가 나는 CSV가 인 OleDB로 파일을 읽고 있어요는 :
스키마의 샘플입니다
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 파일이 어떻게 생겼는지입니다 .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
내가 해봤 다른 syntaxs :
DateTimeFormat = DD MM yyyy를시 : 분 :
System.Data.OleDb.OleDbException : SS는
재치에게이 예외를 실패 : '텍스트 파일 사양'WithDateColumn.csv '에서 DateTimeFormat 옵션이 잘못되었습니다.'
DateTimeFormat = DD MM이 구문에 오류가 있지만 날짜 열이 비어 발생하지 않습니다 YYYY
.
Schema.ini 파일을 사용하여 CSV에서 DateTimes를 읽으려면 어떻게해야합니까?