Jag tror att problemet ligger i din uppmaning till proceduren.
Med versioner av MySQL-kontakten som inte stöder OUT
parametrar, är den normala lösningen att använda MySQL-användarvariabler för att hålla returvärdena och sedan köra en fråga för att få värdena för dessa variabler.
Kör först den lagrade proceduren och låt MySQL lägga in värdena för OUT-argumenten i variabler:
CALL `Get_Next_Processing_Video`(@IDVideo, @YoutubeIDVideo);
Observera att dessa variabler inte är kommandoparametrar; de är variabler som hålls i MySQL-sessionen. För att få värdena för dessa variabler, omedelbart efter anropet till proceduren, med samma MySQL-anslutning:
SELECT @IDVideo, @YoutubeIDVideo ;
Och bearbeta resultatuppsättningen från den frågan som du skulle vilja ha vilken annan SELECT-sats du förväntar dig att returnera en rad.
Uppdatering:
Med nyare versioner av MySQL Connector som stöder OUT-parametrar, tror jag att du måste ange att dessa parametrar är OUT-parametrar genom att ställa in ett medlemsattribut:
cmd.Parameters["out_IDVideo"].Direction = ParameterDirection.Output;
cmd.Parameters["out_YoutubeIDVideo"].Direction = ParameterDirection.Output;
Som jag antydde tidigare...
I äldre versioner av MySQL Connector som inte stödde OUT-parametrar, var lösningen att anropa proceduren med MySQL-variabler som argument. Värdena som returneras från proceduranropet behålls i MySQL-sessionen. Omedelbart efter att ha anropat proceduren körde vi en SELECT för att hämta innehållet i användarvariablerna.