Hi,habe ein Excel-Datei mit ca. 4MB Es sind 21.500 Datensätze drin mit 53 Spalten. Auf meine Rechner local und auf unserem test-Rechner funktioniert es, wir bekommen alle Datensätze in die SQL-Server-Tabelle rein. Doch wenn ich die Web-App auf unseren externen rechner publishe und dort den Import starte, werden nur ca. 19.500 Sätze importiert. Gleiche Tabelle, gleicher Source. Kann es sein, dass irgendwelche Speicherfreigaben uns hier einen Streich spielen? Oder ist das Ganze so empfindlich, dass wenn in einer der Excel-Zellen z.B. Null drin steht oder ein anderes unsichtbares Zeichen, dass dann der Vorgang beendet wird, ohne Fehler?
Alle Lösungsansätze sind bisher im Sand verlaufen
using (OleDbConnection oleConnection = oleDbConnection) { using (OleDbCommand oCmd = new OleDbCommand()) { oCmd.Connection = oleConnection; oCmd.CommandText = pSql; oCmd.CommandType = CommandType.Text; oleConnection.Open(); using (OleDbDataReader dr = oCmd.ExecuteReader()) { using (SqlConnection connection = oConnection) { using (SqlBulkCopy bulkCopy = new SqlBulkCopy(oConnection)) { connection.Open(); bulkCopy.DestinationTableName = pDestTable; bulkCopy.ColumnMappings.Clear(); foreach (var param in sourceTargetFieldPairs) { bulkCopy.ColumnMappings.Add(param.Key.ToString(), param.Value.ToString()); } bulkCopy.WriteToServer(dr); retStatus = true; } connection.Close(); } } } oleConnection.Close(); }
Wenn ich Spalten wegnehme, die in der Datei sind, die ich aber nicht fürs Einlesen brauche (nur für den Test) dann funktioniert es.
Gruß Hipp