Agregar registro con un Command con parametros

16/01/2009 - 00:42 por Anti_Work | Informe spam
Intento agregar un usuario al la tabla Usuarios, con esta funcion, pero no
funciona.
Curiosamente, la funcion retorna 1, por lo que crei que se agregaba el
registro; pero no se agrega nada. Lo intente una y otra vez, no lanza ninguna
exepcion, hace como que agrega el registro peron finalmente, cuando abro la
tabla con access me doy cuenta que no se agregó nada.

public int agregarUsuario(Usuario usuario)
{
string sql = "INSERT INTO Usuarios (Nombre, Rol, Pass, Ayuda)
VALUES (?, ?, ?, ?)";
OleDbCommand cmd = new OleDbCommand(sql,this.cnn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("", OleDbType.VarChar, 50).Value =
usuario.nombre ;
cmd.Parameters.Add("", OleDbType.VarChar, 50).Value = usuario.rol;
cmd.Parameters.Add("", OleDbType.VarChar, 100).Value =
usuario.pass;
cmd.Parameters.Add("", OleDbType.VarChar, 255).Value =
usuario.ayuda;

if (this.cnn.State == ConnectionState.Closed)
this.cnn.Open();
try
{
return cmd.ExecuteNonQuery();
}
catch(Exception e)
{
return 0;
}
}

Agradeceria mucho que me ayuden a encontrar el error.

Saludos
 

Leer las respuestas

#1 José Luis
16/01/2009 - 18:26 | Informe spam
Creo que debes pasar los parámetros con nombre...

string sql = "INSERT INTO Usuarios (Nombre, Rol, Pass, Ayuda)
VALUES (@p1, @p2, @p3, p4)";

OleDbCommand cmd = new OleDbCommand(sql,this.cnn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@p1", OleDbType.VarChar, 50).Value =
usuario.nombre ;
cmd.Parameters.Add("@p2", OleDbType.VarChar, 50).Value =
usuario.rol;
cmd.Parameters.Add("@p3", OleDbType.VarChar, 100).Value =
usuario.pass;
cmd.Parameters.Add("@p4", OleDbType.VarChar, 255).Value =
usuario.ayuda;



Saludos

"Anti_Work" escribió en el
mensaje de noticias:
Intento agregar un usuario al la tabla Usuarios, con esta funcion, pero no
funciona.
Curiosamente, la funcion retorna 1, por lo que crei que se agregaba el
registro; pero no se agrega nada. Lo intente una y otra vez, no lanza
ninguna
exepcion, hace como que agrega el registro peron finalmente, cuando abro
la
tabla con access me doy cuenta que no se agregó nada.

public int agregarUsuario(Usuario usuario)
{
string sql = "INSERT INTO Usuarios (Nombre, Rol, Pass, Ayuda)
VALUES (?, ?, ?, ?)";
OleDbCommand cmd = new OleDbCommand(sql,this.cnn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("", OleDbType.VarChar, 50).Value > usuario.nombre ;
cmd.Parameters.Add("", OleDbType.VarChar, 50).Value =
usuario.rol;
cmd.Parameters.Add("", OleDbType.VarChar, 100).Value > usuario.pass;
cmd.Parameters.Add("", OleDbType.VarChar, 255).Value > usuario.ayuda;

if (this.cnn.State == ConnectionState.Closed)
this.cnn.Open();
try
{
return cmd.ExecuteNonQuery();
}
catch(Exception e)
{
return 0;
}
}

Agradeceria mucho que me ayuden a encontrar el error.

Saludos

Preguntas similares