Hallo Henry,
die Doku vom MySqlConnector ist einfach nur Käse, sowohl bei MySQL wie auch bei der Ersatzimplementierung, die Du verwendest.
Grundsätzlich bietet .net eine BeginTransaction-Methode dafür an. Die kümmert sich um das Handling und ich nehme an, die schickt unter der Haube ein START TRANSACTION Statement an den Server. Oder es gibt dafür eine spezielle Funktion im Treiber.
Wie auch immer.
MySqlConnection conn = new MySqlConnection(connectionString);
conn.Open();
using (MySqlTransaction trans = conn.BeginTransaction()) {
// MySqlCommands ausführen
trans.Commit();
}
conn.Close();
Falls es zu einem SQL Error kommt, fliegt eine Exception und using sorgt für einen Dispose() der Transaktion. Wenn Du keinen Commit gemacht hast, führt das zum Rollback.
MySqlCommands steht im Plural. Für ein einzelnes Command ergibt eine Transaktion keinen Sinn.
Beschäftige Dich mit den IsolationLevels. Du kannst BeginTransaction einen dieser Werte als Argument mitgeben. Der IsolationLevel gibt an, wie radikal MySQL Datenbanksperren setzt. MySql unterstützt nicht jeden Wert. Isolation Levels in MySql
Rolf
sumpsi - posui - obstruxi