Laden...

datagrid in eine andere datenbank abspeichern

Erstellt von mvarga vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.134 Views
M
mvarga Themenstarter:in
12 Beiträge seit 2005
vor 17 Jahren
datagrid in eine andere datenbank abspeichern

Hallo,

ich habe folgendes Problem.

Ich muss einer Oracle-Datenbank Unicodedaten auslesen und in eine MySQL-Datenbank abspeichern. Also kopiere quasi von links nach rechts.

Nun habe ich mir folgenden Weg ausgedacht.

Ich lese eine bestimmte View der Oracle-Datenbank aus und "stecke" sie in ein Datagrid. Nun soll das Datagrid in die MySQL-Datenbank abgespeichert werden, indem ich das Binding wechsel.

Ist diese Idee durchführbar? Kann ich den Inhalt eines Datagrids in eine Datenbank überführen?

Danke im vorraus für eure Hilfe!

Gruß,

Michel

476 Beiträge seit 2004
vor 17 Jahren

hallo mvarga,

davon möchte ich dir dringend abraten. Das DataGridView ist eine GUI-Komponente. Für den Datenzugriff stellt ADO.NET im Namespace System.Data Klassen zum Erstellen von datenbankneutralen DataSet bzw. DataTable bereit, mit denen du dein Problem lösen kannst.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

M
mvarga Themenstarter:in
12 Beiträge seit 2005
vor 17 Jahren

Okay, erstmal vielen Dank für deine Antwort.

Aber hilf' mir bitte auf die Sprünge. Nun habe ich ein DataSet, mit dem Inhalt der Daten aus der Oracle-Datenbank. Wie stelle ich es nun an, dass die Daten des DataSets in meine MySql Datenbank wandern?

Ich suche schon seit Stunden nach einen Weg. Auch Google sagt mir zu diesem Thema nichts, und ich möchte es vermeiden über Schleifen ein SQL-Statement zusammenzubauen ....dass muss eh einfacher und schneller gehen.

Gruß,

Michel

476 Beiträge seit 2004
vor 17 Jahren

hmm,

in dem du einen mySQL-DataProvider verwendest, über den mySQL-spezifischen DataAdapter eine Verbindung zur mySQL-Datenbank aufbaust und die Daten rein schauffelst.

Wie das geht sollte hier bereits beschrieben sein:
C# <-> mySQL

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

M
mvarga Themenstarter:in
12 Beiträge seit 2005
vor 17 Jahren

??? Was soll mir der Link sagen? Ein richtige Erklärung für mein Problem ist es nicht.

Das ich über ein Insert oder Update-Statement eine Datenbanktabelle aktualisiere ist mir schon klar. Aber die Frage war, WIE (WENN ÜBERHAUPT MÖGLICH) ich ein vorhandenes DataSet oder DataTable ohne über ein SQL-Statement in meine Datenbank "stopfe"!

Ich denke das es in einer modernen Sprache wie C# selbstverständlich ist, wenn ich z. B. einen Abstraction Layer wie ADO.NET nutze, ohne einen SQL-Insert Befehl die Daten eines vorhandenen Datenobjektes in eine Datenbank speichere, ohne dieses Objekt über eine Schleife auszulesen und mir daraus ein neues Statement zu bauen.

.....Falls es doch so sein sollte und es in C# keinen anderen Lösungsansatz gibt, dann sagt es mir bitte einfach!

Also nochmal, vielleicht habe ich mich nicht verständlich ausgedrückt:

Mein Gedanke ist:

Ein vorhandenes DataSet zu nehmen und es (meinetwegen) in einem DataAdapter zu stecken. Dann nur noch quasi "adapter.update()" und gut ist.

Danke nochmals für die Hilfe!

Gruß,

Michel

F
10.010 Beiträge seit 2004
vor 17 Jahren

Ist heute Vollmond, oder warum sind im Moment so viele so agressiv hier?

Im Prinzip geht es recht einfach, ist wirklich maximal ein 10 Zeiler, wenn die
Datenbank auf dem MySql-Server schon existiert.

Es geht genauso wie Du annimmst, Daten per OracleDataAdapter in
ein DataSet lesen, und dann mit einem Vorbereiteten MySqlDataAdapter
und einem einfachen DataAdapter.Update schreiben.

Und genau diese Vorgehensweise wurde hier schon zigmal beschrieben.

Und deine Annahme das ADO.NET ein Abstraktionslayer zu Sql ist, ist Falsch.
Alles und jedes, was Du mit Datenbanken machst geht nur über Sql.
Es gibt einige Hilfen wie die Designer oder den CommandBuilder,
aber die helfen nur bei std. Aufgaben.

Vielleicht würde Dir eine gute Lektüre zu .NET helfen wenigstens solche
Irrtümlichen Annahmen auszuräumen.

476 Beiträge seit 2004
vor 17 Jahren

Original von FZelle
Ist heute Vollmond, oder warum sind im Moment so viele so agressiv hier?

es liegt bestimmt am gelb ;o)

Original von FZelle
Es geht genauso wie Du annimmst, Daten per OracleDataAdapter in
ein DataSet lesen, und dann mit einem Vorbereiteten MySqlDataAdapter
und einem einfachen DataAdapter.Update schreiben.

@mvarga: vorgehen wie FZelle beschrieben hat. Ich war davon ausgegangen, dass wenn du die Daten aus Oracle in das Dataset geschrieben bekommst, du weisst wie du sie wieder zurückschreiben kannst. Dasselbe funktioniert mit mySQL, eben mit dem mySQL-DataProvider

Orginal von FZelle
Und genau diese Vorgehensweise wurde hier schon zigmal beschrieben.

...und würde über die Forum-Suche auch zigmal gefunden werden.

Orginal von FZelle
Vielleicht würde Dir eine gute Lektüre zu .NET helfen wenigstens solche
Irrtümlichen Annahmen auszuräumen.

Ein gutes Buch ist nie verkehrt, und Visual C# 2005 ist sogar kostenlos als HTML-Variante zu bekommen.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

M
mvarga Themenstarter:in
12 Beiträge seit 2005
vor 17 Jahren

Okay, meinen Kommentar zu den Randbemerkungen verkneife ich mir an dieser Stelle.

Trotzdem vielen Dank für die Infos!

Und falls ich einen "agressiven" Eindruck hinterlassen haben soll, dann bitte ich um Verzeihung.