Você não pode parametrizar um identificador (nome da tabela ou nome do campo) no MySQL, no entanto, você pode escapar deles usando acentos graves.
A consulta a seguir será executada com segurança, mas produzirá um erro porque a tabela não existe (a menos que por alguma estranha chance você realmente tenha uma tabela chamada assim):
SELECT * FROM `users; DROP TABLE users;`;
Basicamente, você pode usar nomes ou campos dinâmicos, desde que estejam entre acentos graves. Para evitar a injeção de SQL dessa maneira, tudo o que você precisa fazer é remover primeiro os backticks:
tableName = tableName.Replace("`", "");
string commandText = "SELECT COUNT(*) FROM `" + tableName + "`";