verwendetes Datenbanksystem: MySql 5.0.45, MySQL Connector Net 6.0.3
Hallo zusammen, nach suche Google-Suche und Forum-Suche benötige ich Hilfe bei folgendem Problem:
Das Einfügen von Daten klappt einmal, beim 2. Mal kommt folgende Fehlermeldung: "When MySqlCommandBuilder.ReturnGeneratedIdentifiers is true, MySqlCommand.UpdatedRowSource must be set to None"
Leider findet man zu dieser Fehlermeldung nicht all zuviel was mir weiter hilft.
Hier ein Code Ausschnitt:
conn.Open();
cb = new MySqlCommandBuilder(da);
int anzahl = da.Update(datasetFilm);
conn.Close();
MessageBox.Show(anzahl + " Zeile(n) eingefügt.");
Hat jemand eine Idee, wie ich das Problem lösen kann?
Hallo Xynratron,
Vielen Dank für Deine Antwort, aber diesen Beitrag kannte ich bereits, ich sehe nicht, wie er mir weiter hilft. Ich habe verschiedene Überladungen des Update-Befehls ausprobiert, es tritt immer das gleiche Problem auf.
Vielleicht sollte ich noch etwas ergänzen: Das Problem tritt nicht auf, wenn Daten in einem vorhandenen Datensatz verändert oder wenn Datensätze gelöscht werden. Nur beim mehrmaligen Einfügen eines neues Datensatzes. Beim ersten Mal wird der Datensatz korrekt eingefügt, beim zweiten Mal kommt der geschilderte Fehler.
Gmi
wie sieht denn der passende select befehl des adapters von dir aus?
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
Hallo demondriver235!
Mein Select-Befehl sieht so aus:
String cmd = "SELECT * FROM " + tabName + " ORDER BY indexFilme";
datasetFilm = new DataSet();
if (conn.State == ConnectionState.Open)
{
try
{
da = new MySqlDataAdapter(cmd, conn);
da.Fill(datasetFilm);
dataGV1.DataSource = datasetFilm.Tables[0];
dataGV1.Update();
}
catch (MySqlException ex)
{
MessageBox.Show("Error retrieving data from film database: " + ex.Message);
}
}
Gmi
Hallo,
bedeutet das, dass die **DbConnection **zentral erstellt wurde und dauerhaft existiert? Das soll nicht sein! Auf diesen Fehler hatte auch FZelle in dem genannten Link hingewiesen. Wenn du das korrigierst, werden auch unerklärliche Fehler entfallen.
Siehe nochmals unter [Artikel] Ressourcen schonen - Datenbanken richtig öffnen und schließen
Jürgen
Hallo juetho,
nein, sie wird für Update neu geöffnet und gleich wieder geschlossen.
Gmi
du scheinst alles richtig zu machen, es handelt sich wohl um einen MySQL bug
http://bugs.mysql.com/bug.php?id=32732
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
Das Merkwürdige ist ja, dass offenbar viele den MySql Adapter verwenden, über diesen Fehler aber nicht viel zu finden ist.
Gibt es denn einen "work around"?
Ich könnte die Daten natürlich vor dem Beenden des Programmes in die Datenbank schreiben, denn einmal klappt es ja, aber das ist unbefriedigend.
Gmi
test das doch mal mit einer version des .net connector vor 5.1.4
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
Hallo demondriver235,
vielen Dank für den Tipp: mit der Version 5.0.9 des Net Connectors scheint es zu funktionieren!
Gmi
Es scheint tatsächlich ein Bug des NET Connector zu sein: Hier ist ein weiterer Link, in dem das Problem diskutiert wird:
http://bugs.mysql.com/bug.php?id=37865
Gmi