MySQLConnection Conn.Connect()
The conventional naming for arguments in C# is camelCase:


  AccountLogin _AccCred


looks better as

AccountLogin accountLogin




I wonder if this: DatabaseCredentials?.DatabaseName is of any use? if DatabaseCredentials is null what database can you then connect to?

I would throw an exception if DatabaseCredentials == null. This applies probably to AccountCredentials too.



String concatenations are a rather inefficient way to  build strings:

instead of 

string ConnInfo = "server=" + DatabaseCredentials.Server + ";" +
                              "user=" + AccountCredentials.Username + ";" +
                              "database=" + DatabaseCredentials.DatabaseName +
                              "port=" + DatabaseCredentials.Port + 
                              "password=" + AccountCredentials.Password;


use either 

StringBuilder


or

String.Format("server={0};user={1};...", DatabaseCredentials.Server, AccountCredentials.Username,...);


or

string interpolation:

$"server={DatabaseCredentials.Server};user={AccountCredentials.Username};..."




MySqlConnection implements IDisposable. Therefore your wrapper should do that as well, so you can dispose the _connection object, and the client can then use your wrapper like this:

using (DatabaseConnection dc = new DatabaseConnection(...))
{
  // Use the connection...
}




The try-catch-statement in the Connect() method is of no use to the client because, if the connection fails, it is not signaled to the client. Either rethrow the exception, throw a new exception of your own or simply ignore any exceptions here and let the client handle them.



in

public void Close()
{
    _connection.Close();
}


you should test for _connection == null.