Foros del Web » Programando para Internet » ASPX (.net) »

confusion con inserción

Estas en el tema de confusion con inserción en el foro de ASPX (.net) en Foros del Web. Hola a todos tengo un pequeño dilema... Les cuento yo estoy insertando datos a mi base de datos sqlserver con el siguiente procedimiento almacenado: Código: ...
  #1 (permalink)  
Antiguo 12/01/2006, 11:11
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta confusion con inserción

Hola a todos tengo un pequeño dilema...
Les cuento yo estoy insertando datos a mi base de datos sqlserver con el siguiente procedimiento almacenado:

Código:
CREATE procedure spInsertarAct (@nombreactividad nvarchar(50), 
@docidentidad varchar(30)) AS 
if not exists (select [nombreactividad], [docidentidad] from
Actividades where [nombreactividad]=@nombreactividad and 
[docidentidad]=@docidentidad) 
INSERT INTO [Actividades] ([nombreactividad], 
[docidentidad]) VALUES(@nombreactividad, @docidentidad)
entonces cuando voy a ejecutar en mi aplicación el procedimiento almacenado así:

Código:
//insertar en tabla actividades
SqlCommand CmdIns = new SqlCommand("spInsertarAct", MyCon);
CmdIns.CommandType = CommandType.StoredProcedure;
CmdIns.Parameters.Add(new SqlParameter("@nombreactividad ", SqlDbType.NVarChar, 50));
CmdIns.Parameters["@nombreactividad "].Value =TbActividades.Text;
CmdIns.Parameters.Add(new SqlParameter("@docidentidad", SqlDbType.VarChar, 30));
String doc = Session["MySessionVar"].ToString();
CmdIns.Parameters["@docidentidad"].Value = doc;
CmdIns.Connection.Open();
try
{
    CmdIns.ExecuteNonQuery();
}
catch (Exception ex)
{
    Response.Write("La insercion fallo" + ex.Message);
}
CmdIns.Connection.Close();
El funciona correctamente en caso de estar repetido no lo inserta y en caso de no estarlo lo inserta....
lo que yo quiero es obtener el valor del procedimiento cuando lo ejecuto en la aplicación para mostrar msgbox dependiendo de lo que devuelva el procedimiento; es decir, cuando inserte me devuelva un valor y yo obtenerlo y lo mismo cuando no lo inserte por el if not exists del procedimietno

a quien me pueda ayudar se lo agradezco
  #2 (permalink)  
Antiguo 12/01/2006, 11:42
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
trata de ponerlo tabulado... asi no se entiende....

si lo que quieres es atraparlo con un catch... genera el error en el sql..

if (exists)
inserta()
else
raiserror('El registro ya existe',16,1)
  #3 (permalink)  
Antiguo 12/01/2006, 12:49
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
lo hice así y igual me sale el msgbox que tengo para el registro insertado y no me sale el error
  #4 (permalink)  
Antiguo 12/01/2006, 12:53
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola!!!!
este error dado desde sql cómo puedo hacer para mostralo en un msgbox?????
  #5 (permalink)  
Antiguo 12/01/2006, 12:56
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
ya gracias por tu respuesta me sirvio mucho ya pude colocarlo en el msgbox y todo
gracias

chao chao
  #6 (permalink)  
Antiguo 13/01/2006, 10:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 129
Antigüedad: 18 años, 5 meses
Puntos: 0
Otra forma de saber el resultado del ExecuteNonQuery es así:
int result = 0;

result = CmdIns.ExecuteNonQuery();

if(result > 0)
//todo ha ido bien y se insertó el registro
else
//el registro no se insertó
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.