Mossos
Ensign
- Registriert
- Juni 2008
- Beiträge
- 152
Hallo zusammen!
Hab folgendes Problem:
Ich habe ein DataGrid, welches über einen MySqlDataAdapter (=>DataSet) gefüllt wird. Eine Spalte davon heißt "company".
Wenn ich eine Zeile lösche, soll nicht nur die Zeile in der entsprechenden Sql-Table gelöscht werden, sondern auch zwei abhängige tables. Die tables besitzen den Namen "users_[company]" und "costcenters_[company]" (ohne die eckigen Klammern).
Jetzt gibt es ja für das DataGrid den definierbaren DeleteCommand und die Update()-Funktion, die bei Änderungen den entsprechenden Command ausführt.
Ich hab das versucht so umzusetzen:
Später im Code dann beim Klick auf speichern:
SqlDataAdapter.Update(dataSet);
Der Fehler liegt darin, dass @p1 nicht in den Namen umgesetzt wird, was ich auch verstehen kann. Mir fällt nur leider keine Lösung ein, wie ich den Wert der Spalte sonst erhalten kann.
Hab auch versucht, das einfach mit nem Trigger zu realisieren, doch da zickt MySql rum weil man in Triggern keine implizieten Commits ausführen darf (=> Drop table) ...
Hat da vielleicht jemand ne Idee??
Gruß,
Mossos.
Hab folgendes Problem:
Ich habe ein DataGrid, welches über einen MySqlDataAdapter (=>DataSet) gefüllt wird. Eine Spalte davon heißt "company".
Wenn ich eine Zeile lösche, soll nicht nur die Zeile in der entsprechenden Sql-Table gelöscht werden, sondern auch zwei abhängige tables. Die tables besitzen den Namen "users_[company]" und "costcenters_[company]" (ohne die eckigen Klammern).
Jetzt gibt es ja für das DataGrid den definierbaren DeleteCommand und die Update()-Funktion, die bei Änderungen den entsprechenden Command ausführt.
Ich hab das versucht so umzusetzen:
Code:
string deleteString = "DROP TABLE `abrechnung`.`users_@p1`;
DROP TABLE `abrechnung`.`costcenters_@p1`;
DELETE FROM `abrechnung`.`clients` WHERE ID=@p5";
MySqlCommand cmdUp = new MySqlCommand(updateString, con);
cmdUp.Parameters.Add("@p1", MySqlDbType.VarChar, 45, "company");
MySqlCommand cmdDel = new MySqlCommand(deleteString, con);
cmdDel.Parameters.Add("@p5", MySqlDbType.Int16, 8, "ID");
da.DeleteCommand = cmdDel;
Später im Code dann beim Klick auf speichern:
SqlDataAdapter.Update(dataSet);
Der Fehler liegt darin, dass @p1 nicht in den Namen umgesetzt wird, was ich auch verstehen kann. Mir fällt nur leider keine Lösung ein, wie ich den Wert der Spalte sonst erhalten kann.
Hab auch versucht, das einfach mit nem Trigger zu realisieren, doch da zickt MySql rum weil man in Triggern keine implizieten Commits ausführen darf (=> Drop table) ...
Hat da vielleicht jemand ne Idee??
Gruß,
Mossos.