Det ser ut som att du använder MySqlCommand-objektet, åtminstone i ditt andra exempel. För att få någon nytta av förberedda uttalanden behöver du inte göra dig av med anslutnings- och kommandoobjekten. Du kommer också att vilja ringa prepare efter att ha ställt in CommandText och innan du ställer in några parametrar.
https://dev.mysql .com/doc/connector-net/en/connector-net-programming-prepared-preparing.html
Också förberedda satsparametrar i MySQL namnges inte, de specificeras baserat på beställning. Kommandotexten ska bara innehålla frågetecken där parametrarna finns, och parameterobjekten måste läggas till i exakt den ordningen.