Visual Basic.NET - Parametros a stored mysql en .net

 
Vista:
Imágen de perfil de Alvaro Jimenez

Parametros a stored mysql en .net

Publicado por Alvaro Jimenez (2 intervenciones) el 22/01/2007 22:15:06
ERROR:
"Parameter '?clogin' is not found but a parameter with the name 'clogin' is found. Parameter names must include the leading parameter marker."

sp

CREATE DEFINER=`root`@`localhost` PROCEDURE `spadmusers`(IN clogin varchar(50),IN cpassword varchar(50))
BEGIN
select * from ut_users where slogin=clogin and spassword=cpassword;
END$$

codigo .net (c#)

string cad= "Database=saga;Data Source=localhost;User Id=root;Password=123456";
MySqlConnection cnn=new MySqlConnection(cad);
cnn.Open();
MySqlCommand comando=new MySqlCommand();
comando.Connection = cnn;
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = "spadmusers";
MySqlParameter p=new MySqlParameter("clogin", MySqlDbType.VarChar);
p.Value = this.login;
comando.Parameters.Add(p);
MySqlParameter p2 = new MySqlParameter("cpassword", MySqlDbType.VarChar);
p2.Value = this.password;
comando.Parameters.Add(p2);
MySqlDataAdapter DAdapter= new MySqlDataAdapter();
DAdapter.SelectCommand = comando;
DataSet ds = new DataSet();
DAdapter.Fill(ds);

Agradezco cualquier ayuda, ya no encuentro que hacer. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Parametros a stored mysql en .net

Publicado por Alex A. Salamanca E. (15 intervenciones) el 22/01/2007 22:27:17
Hola Alvaro:

No sé si te ayude, ya que no conosco mucho de mysql, pero si de postgres, oracle y sql server, en base a ello creo que podría ser que el nombre de tus parametros deberían llamarse "@clogin" o bien ":clogin" o en ultimo caso
"?clogin", es por ello que tu codigo debería quedar asi:

string cad= "Database=saga;Data Source=localhost;User Id=root;Password=123456";
MySqlConnection cnn=new MySqlConnection(cad);
cnn.Open();
MySqlCommand comando=new MySqlCommand();
comando.Connection = cnn;
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = "spadmusers";
MySqlParameter p=new MySqlParameter("@clogin", MySqlDbType.VarChar);
p.Value = this.login;
comando.Parameters.Add(p);
MySqlParameter p2 = new MySqlParameter(":cpassword", MySqlDbType.VarChar);
p2.Value = this.password;
comando.Parameters.Add(p2);
MySqlDataAdapter DAdapter= new MySqlDataAdapter();
DAdapter.SelectCommand = comando;
DataSet ds = new DataSet();
DAdapter.Fill(ds);

Si te fijas lo unico que cambié fue los nombres de los parametros, tenta anteponiendo antes del nombre los (@ : ?), cualquiera de ellos.

Lo otro que driver usas, ODBC, OLEDB, nativo .NET de los que se bajan de la página de mysql o bien de un fabricante independiente?. Ahí a lo mejor puedes encontrar información de parametros y otras cosas.

Saludos
Alex A. Salamanca E.
Concepción - Chile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parametros a stored mysql en .net

Publicado por Gonzalo García Correas (3 intervenciones) el 11/06/2007 05:20:57
Los nombres de parámetros llevan un signo "?" (That's the leading parameter marker!) adelante del nombre.

Además debe incluirse la dirección de ejecución (Input / Output / InputOutput / ReturnValue:

comando.Parameters.Add("?clogin", MySqlDbType.VarChar); ).Direction = ParameterDirection.Input;

// Para recuperar el valor:

variable = comando.Parameters.Add("?clogin").Value;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar