Saya pikir masalahnya ada pada panggilan Anda ke prosedur.
Dengan versi konektor MySQL yang tidak mendukung OUT
parameter, solusi normalnya adalah menggunakan variabel pengguna MySQL untuk menyimpan nilai yang dikembalikan, lalu menjalankan kueri untuk mendapatkan nilai variabel tersebut.
Pertama, jalankan prosedur tersimpan, dan minta MySQL memasukkan nilai argumen OUT ke dalam variabel:
CALL `Get_Next_Processing_Video`(@IDVideo, @YoutubeIDVideo);
Perhatikan bahwa variabel tersebut bukan parameter perintah; mereka adalah variabel yang diadakan di sesi MySQL. Untuk mendapatkan nilai dari variabel tersebut, segera setelah panggilan ke prosedur, menggunakan koneksi MySQL yang sama:
SELECT @IDVideo, @YoutubeIDVideo ;
Dan proses hasil dari kueri itu seperti Anda menginginkan pernyataan SELECT lainnya yang Anda harapkan untuk mengembalikan satu baris.
Pembaruan:
Dengan versi Konektor MySQL yang lebih baru yang mendukung parameter OUT, saya pikir Anda perlu menentukan bahwa parameter tersebut adalah parameter OUT dengan menyetel atribut anggota:
cmd.Parameters["out_IDVideo"].Direction = ParameterDirection.Output;
cmd.Parameters["out_YoutubeIDVideo"].Direction = ParameterDirection.Output;
Seperti yang saya tunjukkan sebelumnya...
Dalam versi Konektor MySQL yang lebih lama yang tidak mendukung parameter OUT, solusinya adalah memanggil prosedur menggunakan variabel MySQL sebagai argumen. Nilai yang dikembalikan dari panggilan prosedur dipertahankan dalam sesi MySQL. Segera setelah memanggil prosedur, kami akan menjalankan SELECT untuk mengambil konten variabel pengguna.