Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2010, 20:54
Baldur
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 18 años, 11 meses
Puntos: 1
De acuerdo [SOLUCIONADO]Parameters en MySqlCommand no funcionan

Hola a todos!

Pues después de haberme creado mi clase BD donde manejo toda la base de datos mysql, me dispongo a probarla. Y para ello utilizo el método registrar de la clase usuarios.
Código C++:
Ver original
  1. public static Usuario registrar(string login, string password, string nombre, DateTime cumpreanos)
  2.         {
  3.             MySqlCommand sql = new MySqlCommand("insert into gp_usuarios (login, password, nombre) values (@login,@password,@nombre)");
  4.  
  5.             sql.Parameters.Add(new MySqlParameter("login", System.Data.SqlDbType.VarChar));
  6.             sql.Parameters.Add(new MySqlParameter("password", System.Data.SqlDbType.VarChar));
  7.             sql.Parameters.Add(new MySqlParameter("nombre", System.Data.SqlDbType.VarChar));
  8.             //sql.Parameters.Add(new MySqlParameter("cumpreanos", System.Data.SqlDbType.VarChar));
  9.  
  10.             sql.Parameters["login"].Value = login;
  11.             sql.Parameters["password"].Value = password;
  12.             sql.Parameters["nombre"].Value = nombre;
  13.             //sql.Parameters["cumpreanos"].Value = cumpreanos;
  14.             MySqlConnection conexion = BD.Conexion();
  15.  
  16.             MySqlTransaction t = conexion.BeginTransaction();
  17.  
  18.             if (!(BD.ejecuta(sql, t) == 1))
  19.             {
  20.                 t.Rollback();
  21.                 return null;
  22.             }
  23.  
  24.             Usuario u = new Usuario();
  25.  
  26.             u.login = login;
  27.             u.password = password;
  28.             u.nombre = nombre;
  29.             u.cumpreanos = cumpreanos;
  30.  
  31.             t.Commit();
  32.  
  33.             return u;
  34.         }


Pues parece ser que los MySqlCommand.Parameters no funcionan...es decir, no insertan el valor que se les pasa. Y porqué digo esto?
Porque he probado a sustituir los @ directamente por el valor que quería y comentado la parte de los parameters y me ha insertado la línea perfectamente.
Además, en el control de excepciones que he puesto en en la clase BD, me arroja una que me dice que el campo Login no puede ser NULL...

Alguien tiene idea de como solucionar esto o porqué pasa esto?

Estoy desesperado ya con el MySQL la verdad...
Esta misma clase la importé directamente de una que ya tenía hecha en SQL Server y funcionaba perfectamente...

Gracias por la ayuda y un Saludo!
Muchísimas gracias!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas

Última edición por Baldur; 11/07/2010 a las 08:04 Razón: Solucionado