Wie importiere ich in .Net Werte aus einer CSV im gewünschten Format mit OleDB?

Ich habe eine CSV-Datei mit einer Spalte, die Zeichenfolgen enthält, die wie Ganzzahlen aussehen. Das heißt, sie sollten als Zeichenfolgen behandelt werden, aber da es sich um Zahlen handelt, scheinen sie als Ganzzahlen importiert zu werden (wobei die führenden Nullen weggelassen werden).

Beispieldaten:

0000000000079000099900001200010020000050004100000007

Das Problem, das ich sehe, ist, dass der letzte Beispieldatenpunkt als DBNull.Value durchkommt. Ich gehe davon aus, dass OleDB diese Spalte als Ganzzahl behandelt (die Datenpunkte kommen auch ohne führende Nullen durch) und dass 0004100000007 größer als der größte Ganzzahlwert ist.

Gibt es eine Möglichkeit zu sagen, "Spalte [0] ist ein String, lese ihn nicht als Ganzzahl"? Beim Lesen der Daten?

Der Code, den ich momentan benutze, ist:

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
    }
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage