I have coded a database manager in C# that connects to a MySQL database and does a few things, etc.. I just wanted someone to give me a few tips on how I can improve this, and maybe make it a bit faster.DatabaseManager.csusing MySql.Data.MySqlClient;    namespace Kiwi.Application.Base.Core.Database{    sealed class DatabaseManager    {        private string host;        private string username;        private string password;        private string database;        private uint port;        private uint maxConnections;        private string _connectionString;        private DatabaseConnection _dbCon;        public void load()        {            MySqlConnectionStringBuilder cs = new MySqlConnectionStringBuilder            {                ConnectionLifeTime = (60 * 5),                ConnectionTimeout = 30,                Database = this.database,                DefaultCommandTimeout = 120,                Logging = false,                MaximumPoolSize = this.maxConnections,                MinimumPoolSize = 3,                Password = this.password,                Pooling = true,                Port = this.port,                Server = this.host,                UseCompression = false,                UserID = this.username,            };            this._connectionString = cs.ToString();            this._dbCon = new DatabaseConnection(this._connectionString);        }        public DatabaseConnection generateNewConnection()        {            // NEW connection each time...            return new DatabaseConnection(this._connectionString);        }    }}DatabaseConnection.csusing log4net;using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Data;namespace Kiwi.Application.Base.Core.Database{    sealed class DatabaseConnection    {        private MySqlConnection connection;        private MySqlCommand command;        private DateTime startTime;        private List<MySqlParameter> mysqlParams;        private MySqlTransaction transaction;        private ILog myLogger;        public DatabaseConnection(string connectionString)        {            this.connection = new MySqlConnection();            this.connection.ConnectionString = connectionString;            this.command = this.connection.CreateCommand();            this.mysqlParams = new List<MySqlParameter>();            this.myLogger = LogManager.GetLogger(typeof(DatabaseConnection));        }        public void openConnection()        {            if (this.connection.State == ConnectionState.Open)                throw new InvalidOperationException(MySQL connection has already been opened.);            else                this.connection.Open(); //open the connection            this.startTime = DateTime.Now;        }        public bool connectionOpen()        {            return this.connection.State == ConnectionState.Open;        }        public void registerParameter(string param, object value)        {            this.mysqlParams.Add(new MySqlParameter(param, value));        }        public MySqlDataReader executeReader()        {            if (this.mysqlParams != null && this.mysqlParams.Count > 0)            {                this.command.Parameters.AddRange(this.mysqlParams.ToArray());            }            try            {                return this.command.ExecuteReader();            }            catch (MySqlException e)            {                myLogger.Error(e);                throw e;            }            finally            {                this.command.CommandText = string.Empty;                this.command.Parameters.Clear();                if (this.mysqlParams != null && this.mysqlParams.Count > 0) { this.mysqlParams.Clear(); }            }        }        public string getString()        {            if (this.mysqlParams != null && this.mysqlParams.Count > 0)            {                this.command.Parameters.AddRange(this.mysqlParams.ToArray());            }            try            {                return Convert.ToString(this.command.ExecuteScalar().ToString());            }            catch (MySqlException e)            {                myLogger.Error(e);                throw e;            }            finally            {                this.command.CommandText = string.Empty;                this.command.Parameters.Clear();                if (this.mysqlParams != null && this.mysqlParams.Count > 0) { this.mysqlParams.Clear(); }            }        }        public void assignQuery(string Command)        {            this.command.CommandText = Command;        }        public DataSet executeDataSet()        {            if (this.mysqlParams != null && this.mysqlParams.Count > 0)            {                this.command.Parameters.AddRange(this.mysqlParams.ToArray());            }            DataSet Set = new DataSet();            try            {                using (MySqlDataAdapter Adapter = new MySqlDataAdapter(this.command))                {                    Adapter.Fill(Set);                }                return Set;            }            catch (MySqlException e)            {                myLogger.Error(e);                throw e;            }            finally            {                this.command.CommandText = string.Empty;                this.command.Parameters.Clear();                if (this.mysqlParams != null && this.mysqlParams.Count > 0) { this.mysqlParams.Clear(); }            }        }        public DataTable executeTable()        {            DataSet DataSet = this.executeDataSet();            return DataSet.Tables.Count > 0 ? DataSet.Tables[0] : null;        }        public DataRow executeRow()        {            DataTable DataTable = this.executeTable();            return DataTable.Rows.Count > 0 ? DataTable.Rows[0] : null;        }        public int executeNonQuery()        {            try            {                if (this.mysqlParams != null && this.mysqlParams.Count > 0)                    this.command.Parameters.AddRange(this.mysqlParams.ToArray());                return this.command.ExecuteNonQuery();            }            catch (MySqlException exception)            {                myLogger.Error(exception);                throw exception;            }            finally            {                this.command.CommandText = string.Empty;                this.command.Parameters.Clear();                if (this.mysqlParams != null && this.mysqlParams.Count > 0)                    this.mysqlParams.Clear();            }        }        public void Dispose()        {            if (this.connection.State == ConnectionState.Open)            {                this.connection.Close();                this.connection = null;            }            if (this.mysqlParams != null)            {                this.mysqlParams.Clear();                this.mysqlParams = null;            }            if (this.transaction != null)            {                this.transaction.Dispose();                this.transaction = null;            }            if (this.command != null)            {                this.command.Dispose();                this.command = null;            }            int Finish = (DateTime.Now - this.startTime).Milliseconds;            if (Kiwi.getServer().getServerInfo().isDebugging)                myLogger.Debug(Query completed in  + Finish + ms);            else if (Finish >= 5000)                myLogger.Debug(Query took 5 seconds or longer);        }    }}
DatabaseManager
c#;mysql