Et spørgmål om at skrive tomme Integer felter gennem OleDB
Hej eksperterJeg arbejder på et CSV til mdb modul. Modulet bruger StreamReader, String.Split og OleDb til opgaven. Der er 10 kolonner og tusindvis af rækker.
Min udfordring drejer sig om at skrive et tomt heltalsfelt til databasen. Det sker jævnligt, at den 4 kolonne for en række ikke har nogen værdi. Kolonnen er ikke obligatorisk og feltet skal altså blot være tomt = uden standardværdi.
string insertQuery = string.Format("INSERT INTO {0} ", tableName);
insertQuery += "(routeID, posInRoute, type, orderID, placeID, lon, lat, startTime, endTime, loadAfter) ";
insertQuery += "VALUES (?,?,?,?,?,?,?,?,?,?);";
OleDbCommand insertCmd = new OleDbCommand(insertQuery, conn);
foreach (string[] splitLine in ReadCsv(csvFilePath))
{
...
insertCmd.Parameters.Add("@oId", OleDbType.Integer).Value = Int32.Parse(splitLine[3]);
...
}
Jeg ønsker stadig at skrive de 9 andre kolonner, men kolonne 4 skal være tom. Hvordan klarer jeg det?
string.isNullOrEmpty(splitLine[3]) kan fortælle mig om feltet skal være tomt, men jeg ved ikke hvordan man sætter værdien på en Integer Parameter til ingenting.
if(string.isNullOrEmpty(splitLine[3]))
insertCmd.Parameters.Add("@oId", OleDbType.Integer).Value = ???;
else
insertCmd.Parameters.Add("@oId", OleDbType.Integer).Value = Int32.Parse(splitLine[3]);
Kan nogen hjælpe?