2017-09-18 4 views
0

Dies ist der SQL-Befehl Ich Ausführung:Bulk Insert in C# funktioniert nach dem Erstellen von frischen db. Fällt nach. Funktioniert immer in der Konsole

DECLARE @SQLString nvarchar(4000); 
SET @SQLString = N'BULK INSERT events FROM '+ QUOTENAME(@p0) +' WITH (FIELDTERMINATOR = ''|'', ROWTERMINATOR =''\n'')' 
EXECUTE sp_executesql @SQLString 

Der Parameter @ p0 der Pfad zur CSV-Datei ist und hinzugefügt, um mit command.parameters.AddWithValue

Dies funktioniert gut, wenn ich die db löschen und lassen Sie mein Programm es von Grund auf neu erstellen und lassen Sie es dann hineinschreiben.

Allerdings schlägt es fehl, wenn ich meine Anwendung schließen und erneut öffnen und die jetzt vorhandene db verwenden.

Der Fehler ist:.

{ "Bulk-Lastdaten-Umwandlungsfehler (Typ Mismatch oder ungültiges Zeichen für die angegebene Codepage) für die Zeile 1, Spalte 4 (Zeitstempel) \ r \ nBulk Lastdaten Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 2, Spalte 4 (Timestamp). \ r \ nBulk laden Daten Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage ) für Zeile 3, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Conversion-Fehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 4, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 5, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Conversion-Fehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage ) für Zeile 6, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage ) für Zeile 7, Spalte 4 (Timestamp). \ r \ nLastdaten laden Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 8, Spalte 4 (Timestamp). \ r \ nBulk laden Daten Conversion-Fehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 9, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Conversion-Fehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage) für Zeile 10, Spalte 4 (Timestamp). \ R \ nBulk laden Daten Konvertierungsfehler (Typ nicht übereinstimmen oder ungültiges Zeichen für die angegebene Codepage ) für Zeile 11, Spalte 4 (Timestamp). \ R \ nCannot kann nicht geladen werden, da die maximale Anzahl der Fehler (10) überschritten wurde. \ R \ nDer OLE DB Provider \ "BULK \" für den Verbindungsserver \ "(null) \" meldete einen Fehler. Der Anbieter enthielt keine Informationen über den Fehler. \ R \ nDie fetch eine Reihe von OLE DB Provider \ "bulk \" für den Verbindungsserver \ "(null) \". "}

Wenn ich Verwenden Sie den gleichen SQL-Befehl über Abfrage in der SQL-Konsole, es funktioniert einwandfrei

Was ist seltsam ist, dass (Timestamp) ist nicht Spalte 4. Es ist eigentlich die erste Spalte in der CSV.Wie kommt die genaue Abfrage ist Arbeiten mit der Konsole aber nur manchmal (mit neuen db) in C#?

+0

Markieren Sie die von Ihnen verwendeten dbms. (Dieser Code ist produktspezifisch.) – jarlh

+0

Wie sieht Ihre Verbindungszeichenfolge aus/wie teilen Sie dem Code mit, welche Datenbank (Katalog) verwendet werden soll (d. H. Vielleicht sind Sie mit dem richtigen Server/der richtigen Instanz verbunden, aber nicht mit dem richtigen Katalog)? (Der Grund dafür, dass Sie möglicherweise einen Fehler sehen, ist vielleicht ein vorheriger Versuch, eine Tabelle mit denselben Details unter einem anderen Katalog/mit einer anderen Sortierung zu erstellen). – JohnLBevan

+0

Wann immer ich die Formulierung "_Timestamp_" oder ähnliche Datum Dinge in einer SQL-Daten Fehlermeldung sehe, würde ich schätzen, Sie haben Probleme mit Ihrem Zeit/Sprache-Format zwischen Daten, Anwendungen und/oder Datenbank. –

Antwort

1

Dank @JohnBevan

Tatsächlich habe ich beim Erstellen der Datenbank auch den Katalog geändert. Wenn ich jedoch die bereits vorhandene Version verwendet habe, habe ich ChangeDatabase nicht aufgerufen ...

+0

(Danke @mjwills; Ich freue mich für @Thypari, die Punkte zu nehmen; nur froh zu helfen; schätzen den Gedanken aber) – JohnLBevan

Verwandte Themen