我有一个 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
}
}