У меня есть файл CSV, в котором есть столбец, содержащий строки, которые выглядят как целые числа. То есть с ними следует обращаться как со строками, но, поскольку они являются числами, они кажутся импортируемыми как целые числа (отбрасывая начальные нули).
Пример данных:
- 0000000000079
- 0000999000012
- 0001002000005
- 0004100000007
Проблема, которую я вижу, заключается в том, что последняя точка данных примера представлена как DBNull.Value. Я предполагаю, что это связано с тем, что OleDB обрабатывает этот столбец как целое число (точки данных также проходят без начальных нулей), и что 0004100000007 больше, чем наибольшее целочисленное значение.
Есть ли способ сказать, что «столбец [0] — это строка, не читайте ее как целое число»? При чтении данных?
Код, который я сейчас использую:
OleDbConnection dbConn = new OleDbConnection(SourceConnectionString);
OleDbCommand dbCommand = new OleDbCommand("SELECT * FROM test.csv", dbConn);
dbConn.Open();
OleDbDataReader dbReader = dbCommand.ExecuteReader();
while (dbReader.Read())
{
if (dbReader[0] != DBNull.Value)
{
// do some work
}
}