Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Daten aus Datarow in mySQL Datenbank speichern
fluffy1234 - Sa 04.01.14 16:25
Titel: Daten aus Datarow in mySQL Datenbank speichern
Hallo Leute,
ich stehe etwas auf dem Schlauch. Ich habe ein Programm geschrieben, dass eine XML-Datei in ein Dataset ließt und mir diese dann in der Konsole ausgibt.
Nun möchte ich ich die DataRows in eine vorhandene Datenbank einfügen.
So lese ich die XML datei aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| string temp = ""; DataSet myDataSet = new DataSet("myDataSet"); myDataSet.ReadXml("Personen.xml", XmlReadMode.Auto);
....
for (int i = 0; i < tb.Rows.Count; i++) { DataRow dr = tb.Rows[i];
Console.Write(" ");
for (int a = 0; a < tb.Columns.Count; a++) { temp = dr[tb.Columns[a].ColumnName] + " : ";
Console.Write(temp); } Console.WriteLine(); |
So füge ich Daten in die Datenbank ein:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| static void Main(string[] args) { string connString = "Server=localhost;Port=3306;Database=personenliste;Uid=****;password=***;"; MySqlConnection conn = new MySqlConnection(connString); MySqlCommand command = conn.CreateCommand(); command.CommandText = "Insert into person (vorname, nachname, alter, telefon, ort) values(--> ?????????? <--)"; conn.Open(); command.ExecuteNonQuery();
conn.Close(); |
Ich verstehe jedoch nicht und konnte irgendwie auch nichts passendes finden, wie ich die Daten, die in die Konsole geschrieben werden, speichern kann und dann als values in die Datenbank einfügen kann.
Hoffe ihr könnt mir helfen.
Grüße
daeve - Sa 04.01.14 17:23
Hallo
Deine Daten die du in die DB speichern willst hast du ja bereits in dem Dataset. (die Console ist ja nur eine Anzeige)
Also musst du die Daten aus dem Dataset in die DB Speichern.
Gruss David
mmgg - So 06.07.14 23:00
(ungeteestet und für SQLCLient)
Im value Abschnitt vom SQL string nimmst du Bezug auf die jeweiligen Tabellenzellen.
Habe jetzt nur für 'telefon' und 'ort' eingefügt. Die convertierung zu double für telefon steht da nur, damit du das auch hast, für den fall dass sowas vorkommt.
Es ist ausserdem zu empfehlen solche INSERTS in eine Transaaction einzubinden(hab ich jetzt nicht parat) auch weil das Schreiben in die Datenbank quasi in einem Stück passiert.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| string temp = ""; DataSet myDataSet = new DataSet("myDataSet"); myDataSet.ReadXml("Personen.xml", XmlReadMode.Auto);
DataTable tb;
string connString = "Server=localhost;Port=3306;Database=personenliste;Uid=****;password=***;"; SqlConnection conn = new SqlConnection(connString); SqlCommand command = new SqlCommand();
conn.Open();
tb = myDataSet.Tables["Personen"];
for (int i = 0; i < tb.Rows.Count; i++) { command.CommandText = "Insert into person (vorname, nachname, alter, telefon, ort)" + " VALUES (" + Convert.ToDouble(tb.Rows[i]["telefon"]) + ",'" + tb.Rows[i]["ort"] + "')"; command.ExecuteNonQuery(); } conn.Close(); } } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!