Il semble que vous utilisiez l'objet MySqlCommand, du moins dans votre deuxième exemple. Pour tirer parti des instructions préparées, vous n'auriez pas besoin de supprimer les objets de connexion et de commande. Vous voudrez également appeler prepare après avoir défini CommandText et avant de définir des paramètres.
https://dev.mysql .com/doc/connector-net/en/connector-net-programming-prepared-preparing.html
De plus, les paramètres d'instruction préparés dans MySQL ne sont pas nommés, ils sont spécifiés en fonction de l'ordre. Le CommandText doit simplement contenir des points d'interrogation là où se trouvent les paramètres, et les objets de paramètre doivent être ajoutés exactement dans cet ordre.