Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   confusion con inserción (http://www.forosdelweb.com/f78/confusion-con-insercion-363308/)

kejos 12/01/2006 11:11

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 :si:

Andres95 12/01/2006 11:42

:ojotes: 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)

kejos 12/01/2006 12:49

lo hice así y igual me sale el msgbox que tengo para el registro insertado y no me sale el error

kejos 12/01/2006 12:53

Hola!!!!
este error dado desde sql cómo puedo hacer para mostralo en un msgbox?????

kejos 12/01/2006 12:56

ya gracias por tu respuesta me sirvio mucho ya pude colocarlo en el msgbox y todo
gracias

chao chao

9.jorge 13/01/2006 10:49

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ó


La zona horaria es GMT -6. Ahora son las 21:12.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.