MySql-Dump mit C# erzeugen

28/10/2008 - 16:53 von Thorsten Kleibaum | Report spam
Hallo zusammen,

hoffe, ich bin mit meinem Problem hier nicht off-topic.
Ich würde jedenfalls gerne einen Dump meiner Datenbank mit C# erzeugen.
Dazu hole ich mir mit "SHOW TABLES" alle Tabellen, lasse mir über "SHOW
CREATE TABLE" die Tabellen-Definition ausgeben und hole mir schließlich
über "SELECT * FROM" die Daten aus den Tabellen. Das SELECT führe ich
über eine MySqlDataAdapter aus, so daß ich die Tabelle anschließend in
einem DataTable-Objekt von ADO.NET vorliegen habe.
Diese DataTable würde ich nun gerne durchlaufen um die entsprechenden
INSERT-Kommandos zu generieren und diese dann in meinen Dump zu schrieben.

Soweit klappt das auch alles wunder bar, bis auf eine Sache:
einige Datentypen haben in .NET eine andere Darstellungsform als in
MySQL. Dazu gehören bspw. Datumsangaben, bool'sche Werte etc.
Wie kann ich diese am einfachsten in die
MySql-Zeichenfolgen-Entsprechung konvertieren, so daß ich einen
funktionierenden Dump erhalte? Also Datumsangaben z.B. nicht als
"ddt.mm.yyyy hh:mm:ss" sondern als "yyyy-mm-dd hh:mm:ss" erhalte. Gibt
es dazu Converter-Klassen o.à.? Habe nichts finden können.

Danke
Thorsten
 

Lesen sie die antworten

#1 Ulf Kadner
28/10/2008 - 19:42 | Warnen spam
Thorsten Kleibaum schrieb:

Ich würde jedenfalls gerne einen Dump meiner Datenbank mit C# erzeugen.
Dazu hole ich mir mit "SHOW TABLES" alle Tabellen, lasse mir über "SHOW



Ohje! :-) warum einfach wenns auch kompliziert geht wa? ;-)

Ruf einfach mysqldump mit den entsprechenden Parametern auf:
http://dev.mysql.com/doc/refman/5.0...ldump.html

Process.Start('mysqldump ...');

Soweit klappt das auch alles wunder bar, bis auf eine Sache:
einige Datentypen haben in .NET eine andere Darstellungsform als in
MySQL. Dazu gehören bspw. Datumsangaben, bool'sche Werte etc.



Wenn Dir solch einfache Dinge bereits Probleme bereiten was ist dann mit
Datenbanken in denen Abhàngigkeiten definiert sind?

Nene, glaub mir Du willst in Wirklichkeit mysqldump nutzen!

MfG, Ulf

Ähnliche fragen