Insertar en BD

Iniciado por zapala76, 25 Octubre 2011, 21:05 PM

0 Miembros y 1 Visitante están viendo este tema.

zapala76

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.-

s00rk

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.

seba123neo

con MessageBox, pero pone el codigo que usas...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

zapala76

#3
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:

Código (csharp) [Seleccionar]
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:

Código (sql) [Seleccionar]
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.-

zapala76

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