Hay al menos dos problemas:
Es muy probable que tu experiencia en SP y SQL haya sido en SQL Server, por lo cual lo primero que tienes que hacer es olvidarte de ciertas cosas, como el manejo de variables:
son diferentes entre ambos DBMS.
Específicamernte, las variables internas de un SP en MySQL
no usan "@", eso lo hace SQL Server. En MySQL las variables no deben llevar arroba por cuanto las que la usan son variables de sesión, que son un caso especial, y en tu SP esto:
está haciendo una acción ilegal: Comparando un campo contra un NULL, ya que el parámetro no lleva ni debe llevar arroba ( @ ), y dentro de un SP, "@Frent" y "Frent"
son variables distintas. Las variables con "@" se denominan "variables de usuario" y existen unicamente mientras la conexión con MySQL está abierta, y sólo dentro de esa instancia de conexión. Además carecen de tipo, y se las debe inciializar, o de lo contrario su valor es NULL.
Digo que comaprar con NULL es ilegal en MySQL porque al no ser NULL un dato, sino un estado, el campo no puede ser "igual a", sino ser nulo o no. Entonces se deben usar otro tipo de cláusulas.
Eso es una diferencia con SQL Server u Oracle, que admiten el uso de operadores como "=" para verificar NULL.
Por otro lado, hay un problema a nivel .Net.
El MySQL Connector fro NET, realiza ciertas validaciones en modo automático, internas, entre las que están la sintaxis de un SP cuando lo creas
desde Net.
El conector analzia el codigo y si encuentra que hay arrobas las asumirá como parámetros del MysqlCommand, y requerirá parámetros.
Esto trae problemas cuando se usan variables de usuario en sesión de MySQL, ya que la "@", como te dije, se usa para cierto tipo de variables propias de este DBMS. En consecuencia disparará una MysqlException porque no encuentra el prámetro.
Esto se soluciona en la sintaxis del MysqlConnection, donde hay un parámetro para el StringConnection donde le indicas al conector que se usarán las formas antiguas de parametrización (parámetro AllowUserVariables).
Verifica el manual de referencia:
http://dev.mysql.com/doc/connector-n...n-options.html
Posdata: Si vas a crear un SP desde .Net
no necesitas indicar el DELIMITER. Este sólo opera cuando trabajas desde la consola MySQL, o bien desde un script SQL para MySQL. SI lo pones en un MysqlCommand te disparará errores.