Myślę, że problem tkwi w twoim wezwaniu do procedury.
Z wersjami łącznika MySQL, które nie obsługują OUT
parametrów, normalnym obejściem jest użycie zmiennych użytkownika MySQL do przechowywania wartości zwracanych, a następnie uruchomienie zapytania, aby uzyskać wartości tych zmiennych.
Najpierw wykonaj procedurę składowaną i poproś MySQL o umieszczenie wartości argumentów OUT w zmiennych:
CALL `Get_Next_Processing_Video`(@IDVideo, @YoutubeIDVideo);
Zauważ, że te zmienne nie są parametrami poleceń; są to zmienne przechowywane w sesji MySQL. Aby uzyskać wartości tych zmiennych, natychmiast po wywołaniu procedury, używając tego samego połączenia MySQL:
SELECT @IDVideo, @YoutubeIDVideo ;
I przetwórz zestaw wyników z tego zapytania tak, jak chcesz, aby każda inna instrukcja SELECT zwracała jeden wiersz.
Aktualizacja:
W nowszych wersjach MySQL Connector, które obsługują parametry OUT, myślę, że musisz określić, że te parametry są parametrami OUT, ustawiając atrybut członka:
cmd.Parameters["out_IDVideo"].Direction = ParameterDirection.Output;
cmd.Parameters["out_YoutubeIDVideo"].Direction = ParameterDirection.Output;
Jak wspomniałem wcześniej...
W starszych wersjach MySQL Connector, które nie wspierały parametrów OUT, obejściem było wywołanie procedury przy użyciu zmiennych MySQL jako argumentów. Wartości zwrócone z wywołania procedury są zachowywane w sesji MySQL. Natychmiast po wywołaniu procedury uruchomilibyśmy SELECT, aby pobrać zawartość zmiennych użytkownika.