Я анализирую CSV с IDataReader, который будет использоваться для операции SqlBulkCopy. Таблица назначения для SqlBulkCopy имеет столбец с типом «Время». Массовое копирование завершается неудачно, потому что оно пытается привести DateTime к TimeSpan. Когда я исследую IDataReader, я обнаруживаю, что IDataReader анализирует столбец "actionTime "как DateTime вместо Time. Как я могу заставить IDataReader анализировать «actionTime »как Time или TimeSpan, чтобы SqlBulkCopy работал?
var csvFile = $"{blobSource}.csv";
string connectionString =
"DSN=testcsv;" + // This is an ODBC Data Source that uses Microsoft Text Driver (*.txt, *.csv)
$"Dbq={LoadConstants.InputFilesDir};" +
"Extensions=csv";
using (var con = new OdbcConnection(connectionString))
{
con.Open();
var cmdText = $@"SELECT * FROM [{csvFile}]";
using (var cmd = new OdbcCommand(cmdText, con))
{
using (IDataReader reader = cmd.ExecuteReader())
{
var schema = reader.GetSchemaTable();
}
}
}
Вот файл" TestTimeCol.txt "
transactionTime
11:11:11
Это дамп переменной "схема". IDataReader анализирует столбец как DateTime
Это ошибка, выдаваемая SqlBulkCopy
Мой источник данных "testcsv" использует текстовый драйвер Microsoft