Visual CSharp .NET - Ayuda Cargar Store Procedura

 
Vista:

Ayuda Cargar Store Procedura

Publicado por Carlos (1 intervención) el 17/07/2012 05:52:05
Buenas nesecito su ayuda no se que estoy realizando mal con esto lo que que sucede es que cargo el procedimiento de sql en c# lo carga bien pero lo que pasa es que aunque no me guarde nada en la base de datos no me retorna que se no guarda los datos estoy trabajando en tres capas

Primero este es SP

--ACTUALIZAR O INSERTAR USUARIO

CREATE PROC SP_Insert_Usuarios
@Usuario VARCHAR(15),
@Contraseña VARCHAR(15),
@Nombre VARCHAR(70),
@Nivel INT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRAN Tadd
BEGIN TRY
IF EXISTS (SELECT * FROM [dbo].[T_Usuario]
WHERE Usuario = @Usuario)
UPDATE [dbo].[T_Usuario] SET [Usuario]=@Usuario,[Contraseña]=@Contraseña,[Nombre]=@Nombre,[Nivel]=@Nivel
WHERE Usuario= @Usuario
ELSE
INSERT [dbo].[T_Usuario](Usuario,Contraseña,Nombre,Nivel)
VALUES (@Usuario,@Contraseña,@Nombre,@Nivel)
PRINT 'El Usuario se registro correctamente.'
COMMIT TRAN Tadd
END TRY
BEGIN CATCH
PRINT 'No se pudo registrar el usuario, verifique los datos he inténtelo de nuevo.'
ROLLBACK TRAN Tadd
END CATCH
END
GO


Lo cargo en una capa de datos

//1-TABLA USUARIOS
private string Sp_inserUsuario = "SP_Insert_Usuarios";

lo Cargo

public bool IngresarUsuario(string usuario, string contrasena, string nombre, int nivel)
{
try
{
conexion = new SqlConnection(connStr);
{
String insertar = (Sp_inserUsuario);
SqlCommand comm = new SqlCommand(insertar, conexion);
{
Conectar();
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@Usuario", usuario);
comm.Parameters.AddWithValue("@Contraseña", contrasena);
comm.Parameters.AddWithValue("@Nombre", nombre);
comm.Parameters.AddWithValue("@Nivel", nivel);
comm.ExecuteNonQuery();
conexion.Close();
return true;

}
}
}
catch (Exception ex)
{
return false;
}

}


lo llamo en la capa de procesos



//USUARIOS
public bool IngresarUsuario(string usuario, string contrasena, string nombre, int nivel)
{
return Bd.IngresarUsuario(usuario, contrasena, nombre, nivel);
}


y desde la ventana

public bool IngresarUsuarios()
{
return Cl.IngresarUsuario(TxtUsuario.Text.Trim(), TxtContraseña.Text.Trim(), TxtNombre.Text.Trim(), int.Parse(txtNivel.Text.Trim()));
}



y en el boton

private void btnIngresar_Click(object sender, EventArgs e)
{

DialogResult dlgResult = MessageBox.Show("DESEA GUARDAR ESTE REGRISTRO?", "CONFIRMAR?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dlgResult == DialogResult.Yes)
{
try
{

if (TxtUsuario.Text == "" || TxtContraseña.Text == "" || TxtNombre.Text == "" || CboTipo.Text == "")
{
MessageBox.Show("COMPLETE TODOS LOS ESPACIOS", "ADVERTENCIA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
TxtUsuario.Focus();
return;

}

else
{
IngresarUsuarios();
MessageBox.Show("LOS DATOS INGRESADOS CORRECTAMENTE", "PROCESO", MessageBoxButtons.OK, MessageBoxIcon.Information);
Limpiar();
}

}
catch
{
MessageBox.Show("SE HA PRODUCIDO UN ERROR", "ADVERTENCIA", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}


Agradesco si me pueden ayudar
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

Ayuda Cargar Store Procedura

Publicado por roger (12 intervenciones) el 26/07/2012 20:34:36
Es que en el catch solo estas poniendo return false;

Siendo asi deberias llamar el metodo como:

if (!ingresarUsuarios())
{
Messagebox.Show("mensaje fallo", "");
}

Saludos
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