| 

.NET C# Java Javascript Exception

0
Ich möchte eine Zeile in einer Tabelle in einer MySQL-DB in ein Format verwandeln, was ich abspeichern kann (Export).

Dann möchte ich diese Datei zur Verfügung stellen. Jemand anders kann dann diese Datei nehmen und in seine Datenbank einfügen (gleiches Schema) (Import). Vor dem Import sollen aber zwei Werte aus der Datei verändert werden.

Die gespeicherte Datei sollte evtl. komprimiert sein um Platz zu sparen.

Welches Dateiformat ist dafür geeigenet? Wie kann man den Import/Export mit VB.NET lösen? Muß ich zwingend ein DataSet mit dem Schema anlegen oder geht es da auch dynamisch?
15.07.2011
MyKey0815 1,6k 2 9
2 Antworten
3
So ähnliche Sachen mache ich ständig. Ich benötige dafür immer den DataAdapter und ein DataSet. Das Ganze ist eigentlich überhaupt nicht schlimm. Wenn Du mittels

Dim ds as DataSet

Das DataSet definierst, ist das schon dynamisch. Du solltest nur aufpassen, dass nicht gleichnamige Tabellen im DataSet sind, sonst schmurgelt Dir das Programm ab.

Im Prinzip brauchst Du zum Lesen nur ganz wenig:

Dim con as MySqlConnection
Dim da as MySqlDataAdapter
con.ConnectionString = "server=...."
da=new MySqlDataAdapter("select * from tabelle;",con)
da.Fill(ds,"tabellenname")
da.Dispose()
con.Close()


Und dann hast Du im DS die einzelnen DataRows drin.

Alle Klarheiten beseitigt? ;-)
15.07.2011
muffi 1,4k 1 9
1
Hallo,

Vielleicht muss man noch kurz dazu sagen, dass man sich dafür den Connector/Net 6.4.3 von der MySQL Seite herunter laden muss. Wenn man das nicht möchte kann man alternativ auch über ODBC verbinden, dann ändern sich die Namen aus dem Codesnippet von MySqlConnection -> OdbcConnection aus System.Data.Odbc
LutzJ 15.07.2011
Das war schon mal die "halbe Miete" *gggg*
MyKey0815 15.07.2011
1
Hallo,

Als Dateiformat würde ich Dir XML empfehlen. Mit

ds.Tables["tabellenname"].WriteXml("c:\Tabellenname.xml")

kannst Du die Datei im Dateisystem ablegen. Nimmst Du als Format einfaches CSV handelst Du Dir eventuell Probleme mit Zeilenumbrüchen, Komma in den Feldinhalten usw. ein.

Alternativ kannst Du die Ausgabe zunächst in einen Stream schreiben, den Du dann komprimieren kannst und dann als Datei auf die Festplatte schreibst.

Dafür gibt es schon ein paar Codesnippets im Internet, z.B. direkt bei MS:

http://msdn.microsoft.com/en-us/library/ms404280.aspx

Gruß
15.07.2011
LutzJ 1,3k 1 8
Ich habe das speichern in ein XML-Datatable implementiert.

Wie bekomme ich nun auf die Informationen in die MySQL-Datenbank, wenn die Datei auf einen anderen Rechner kopiert wurde? Hat jemand einen Code-Snippsel parat, wie man ein DataTable direkt in die Datenbank einfügt?
MyKey0815 15.07.2011
Das geht genau so einfach:

http://msdn.microsoft.com/en-us/library/d6swf149.aspx
LutzJ 17.07.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH