MySql.Data.MySqlClient.MySqlConnection.BeginTransaction C# (CSharp) Method

BeginTransaction() public method

public BeginTransaction ( System.Data.IsolationLevel iso ) : MySql.Data.MySqlClient.MySqlTransaction
iso System.Data.IsolationLevel
return MySql.Data.MySqlClient.MySqlTransaction
        public new MySqlTransaction BeginTransaction(IsolationLevel iso)
        {
            //TODO: check note in help
            if (State != ConnectionState.Open)
                throw new InvalidOperationException(Resources.ConnectionNotOpen);

            // First check to see if we are in a current transaction
            if (driver.HasStatus(ServerStatusFlags.InTransaction))
                throw new InvalidOperationException(Resources.NoNestedTransactions);

            MySqlTransaction t = new MySqlTransaction(this, iso);

            MySqlCommand cmd = new MySqlCommand("", this);

            cmd.CommandText = "SET SESSION TRANSACTION ISOLATION LEVEL ";
            switch (iso)
            {
                case IsolationLevel.ReadCommitted:
                    cmd.CommandText += "READ COMMITTED";
                    break;
                case IsolationLevel.ReadUncommitted:
                    cmd.CommandText += "READ UNCOMMITTED";
                    break;
                case IsolationLevel.RepeatableRead:
                    cmd.CommandText += "REPEATABLE READ";
                    break;
                case IsolationLevel.Serializable:
                    cmd.CommandText += "SERIALIZABLE";
                    break;
                case IsolationLevel.Chaos:
                    throw new NotSupportedException(Resources.ChaosNotSupported);
            }

            cmd.ExecuteNonQuery();

            cmd.CommandText = "BEGIN";
            cmd.ExecuteNonQuery();

            return t;
        }

Same methods

MySqlConnection::BeginTransaction ( ) : MySql.Data.MySqlClient.MySqlTransaction

Usage Example

Exemplo n.º 1
3
        public static bool SettingsSetPassword(string password)
        {
            using (MySqlConnection mySqlCon = new MySqlConnection(LiveDocs.backend.database.Database.ConnectionString))
            {
                mySqlCon.Open();
                using (MySqlTransaction mySqlTransaction = mySqlCon.BeginTransaction())
                {
                    using (MySqlCommand mySqlCommand = mySqlCon.CreateCommand())
                    {
                        mySqlCommand.Transaction = mySqlTransaction;
                        try
                        {
                            mySqlCommand.Parameters.AddWithValue("@password", password);
                            mySqlCommand.Parameters.AddWithValue("@username", HttpContext.Current.Session["username"]);
                            mySqlCommand.Parameters.AddWithValue("@token", HttpContext.Current.Session["token"]);
                            mySqlCommand.CommandText =
                                "UPDATE Users SET Password=Password(@password) WHERE UserName=@username AND LoginToken=@token";

                            mySqlCommand.ExecuteNonQuery();
                            mySqlTransaction.Commit();
                        }
                        catch (Exception)
                        {
                            mySqlTransaction.Rollback();
                            return false;
                        }
                    }
                }
            }
            return true;
        }
All Usage Examples Of MySql.Data.MySqlClient.MySqlConnection::BeginTransaction