2017-01-30 4 views
0

Ich schrieb ein einfaches Programm, eine CSV-Datei LOAD DATA LOCAL..mysql Ladedaten lokale Show Warnung von C#

 loadFileSQL = "LOAD DATA...." 
    using (MySqlCommand cmd = new MySqlCommand(loadFileSQL, conn)) 
      { 
        try 
        { 
         Console.WriteLine("Loading File...."); 
         cmd.ExecuteNonQuery(); 
         Console.WriteLine("Load file complete..."); 

        } 
        catch (MySqlException ex) 
        { 
         Trace.WriteLine("MySQL Something went wrong" + ex.InnerException.Message); 
        } 

        ... 
      } 

mit laden würde Ich mag die Nachricht protokollieren, wie viele Zeilen eingefügt wurden, wie viele übersprungen und wie viele gescheiterte ..Wie nehme ich das ein? Wenn einige fehlgeschlagen sind, ist es möglich zu wissen, welche Zeilen fehlgeschlagen sind?

+0

Verwenden Sie 'cmd.ExecuteScalar', um die Anzahl der betroffenen Zeilen zu erhalten. Sie erhalten nur Nummer, keine Details –

+0

Ja, aber was ist mit wie viele übersprungen failed..etc ähnlich wie Sie sehen, wenn Sie die Ladedaten an einer mysql-Eingabeaufforderung ausführen – cableload

+1

Sie können versuchen, einen Event-Handler für die MySqlConnection schreiben. InfoMessage-Ereignis Ich weiß nicht, ob es in deinem Kontext funktioniert, aber es ist einen Versuch wert. _InfoMessage (Objekt Absender, MySqlInfoMessageEventArgs e) _ dann schauen Sie sich die Fehler Sammlung von MySqlError. – Steve

Antwort

1

Dank allen für Ihre Anregungen und Tipps .. Ich konnte das Infomessage-Print auf der Konsole erhalten, indem die Fehler Eigenschaft

public static void OnInfoMessage(object sender, MySqlInfoMessageEventArgs e) 
    { 
     foreach (MySqlError err in e.errors) 
     { 
      Console.WriteLine(err.Code + ":" + err.Message); 
     } 

    } 

verwenden und wo immer Sie eine Verbindung öffnen, erstellen Sie einfach den Handler wie erwähnt in den Kommentaren

conn.InfoMessage += new MySqlInfoMessageEventHandler(OnInfoMessage); 

Während es nicht gedruckt wird, wie viele fehlerhafte oder übersprungen oder eingefügt, druckt er outs alle Spalten oder falsch abgeschnitten .. etc genau wie Sie auf Ihrem mySQL-Kommandozeile zu sehen.

+0

So ist es die Fehler Sammlung .... Das ist gut zu wissen. – Steve