Tema destacado: Entra al canal IRC oficial de #elhacker.net
Autor
|
Tema: Insertar en BD (Leído 430 veces)
|
zapala76
Desconectado
Mensajes: 44
|
Hola, quería consultar como se podría hacer para que me salga un mensaje en c# si se inserto el registro, ya que al presionar el boton no me sale ningun mensaje de error y el registro no se inserta en la base de datos. Gracias y saludos.-
|
|
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 139
|
Si deceas un poco de ayuda porfavor muestra lo que llevas, para asi poder ayudarte en tus problemas.
Sobre lo que sucede intenta checar en modo debug y deterner ahi en donde haces la inserccion para checar los datos.
|
|
|
|
|
En línea
|
|
|
|
|
seba123neo
|
con MessageBox, pero pone el codigo que usas...
|
|
|
|
|
En línea
|
Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo. Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
|
|
|
zapala76
Desconectado
Mensajes: 44
|
Está bien, tienen razón es mejor con código, para que se entienda mejor el tema es que al apretar el btn aceptar no hace nada, y que si no inserta, debido a que esta bien que no inserte, me largue un mensaje informando que no pudo insertar, acá va el código: public void ModificarUsuario(string nombre, string apellido, string estado, DateTime fecha_alta, string rol, string legajo) { if (Conexion.conectar()) { SqlCommand modifcom = new SqlCommand("modifUsuario", Conexion.conexion); modifcom.CommandType = CommandType.StoredProcedure; modifcom.Parameters.Add("@nombre", SqlDbType.NVarChar); modifcom.Parameters.Add("@apellido", SqlDbType.NVarChar); modifcom.Parameters.Add("@estado", SqlDbType.NVarChar); modifcom.Parameters.Add("@fecha_alta", SqlDbType.DateTime); modifcom.Parameters.Add("@rol", SqlDbType.NVarChar); modifcom.Parameters.Add("@legajo", SqlDbType.NVarChar); modifcom.UpdatedRowSource = UpdateRowSource.None; modifcom.Parameters[0].Value = nombre; modifcom.Parameters[1].Value = apellido; modifcom.Parameters[2].Value = estado; modifcom.Parameters[3].Value = fecha_alta; modifcom.Parameters[4].Value = rol; modifcom.Parameters[5].Value = legajo; modifcom.ExecuteNonQuery(); } } private void btn_acep_Click(object sender, EventArgs e) { RepUsuario moddif_user = new RepUsuario(); moddif_user.ModificarUsuario(txt_modfNom.Text, txt_modifApe.Text, cmb_modifEstado.Text, dtp_modifAF.Value, cmb_modifRol.Text, txt_modifLegajo.Text); } Y el store procedure: SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[modifUsuario] ( @nombre CHAR(30), @apellido CHAR(30), @fecha_alta datetime, @rol CHAR(20), @legajo CHAR(20), @estado CHAR(20), ) AS SET nocount ON BEGIN try UPDATE usuarios SET nombre = @nombre, apellido = @apellido, fecha_alta = @fecha_alta, rol = @rol, legajo = @legajo, estado = @estado WHERE apellido = @apellido Muchas Gracias.-
|
|
|
|
« Última modificación: 26 Octubre 2011, 13:27 por Novlucker »
|
En línea
|
|
|
|
zapala76
Desconectado
Mensajes: 44
|
Al encontré la solucion modificando el stored procedure de esta forma:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[modifUsuario] ( @idUsuario int, @nombre char(30), @apellido char(30), @fecha_alta datetime, @rol char(20), @legajo char(20), @estado char(20), @respuesta int output )
as set nocount on
begin
update usuarios set nombre = @nombre, apellido = @apellido, fecha_alta = @fecha_alta, rol = @rol, legajo = @legajo, estado = @estado where idUsuario = @idUsuario if @@rowcount > 0
set @respuesta=1 else set @respuesta=0
return @respuesta PRINT 'Valor de la respuesta: ' + CONVERT(CHAR(6),@respuesta) end
y en el codigo le puse asi y funciona:
public void ModificarUsuario(int id, string nombre, string apellido, string estado, DateTime fecha_alta, string rol, string legajo) {
if (Conexion.conectar()) { try { SqlCommand modifcom = new SqlCommand("modifUsuario", Conexion.conexion); modifcom.CommandType = CommandType.StoredProcedure;
modifcom.Parameters.Add("@idUsuario", SqlDbType.Int); modifcom.Parameters.Add("@nombre", SqlDbType.NVarChar); modifcom.Parameters.Add("@apellido", SqlDbType.NVarChar); modifcom.Parameters.Add("@estado", SqlDbType.NVarChar); modifcom.Parameters.Add("@fecha_alta", SqlDbType.DateTime); modifcom.Parameters.Add("@rol", SqlDbType.NVarChar); modifcom.Parameters.Add("@legajo", SqlDbType.NVarChar); modifcom.Parameters.Add("@respuesta", SqlDbType.NVarChar); modifcom.Parameters["@respuesta"].Direction = ParameterDirection.Output;
modifcom.UpdatedRowSource = UpdateRowSource.None; modifcom.Parameters[0].Value = id; modifcom.Parameters[1].Value = nombre; modifcom.Parameters[2].Value = apellido; modifcom.Parameters[3].Value = estado; modifcom.Parameters[4].Value = fecha_alta; modifcom.Parameters[5].Value = rol; modifcom.Parameters[6].Value = legajo; modifcom.Parameters[7].Value = "";
modifcom.ExecuteNonQuery(); string valor = modifcom.Parameters["@respuesta"].Value.ToString(); if (valor == "1") { MessageBox.Show("El usuario se actualizó correctamente!"); } else { MessageBox.Show("No se pudo actualizar el usuario"); } } catch (Exception ex) { MessageBox.Show("El legajo le pertenece a otro usuario"); } finally { Conexion.conexion.Close(); } } }
Muchas gracias y saludos
|
|
|
|
|
En línea
|
|
|
|
|
|