SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: kejos en Jueves 12 de Enero de 2006, 19:38

Título: Duda Inserción
Publicado por: kejos en Jueves 12 de Enero de 2006, 19:38
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: Text
  1. CREATE procedure spInsertarAct (@nombreactividad nvarchar(50),
  2. @docidentidad varchar(30)) AS
  3. if not exists (select [nombreactividad], [docidentidad] from
  4. Actividades where [nombreactividad]=@nombreactividad and
  5. [docidentidad]=@docidentidad)
  6. INSERT INTO [Actividades] ([nombreactividad],
  7. [docidentidad]) VALUES(@nombreactividad, @docidentidad)
  8.  

entonces cuando voy a ejecutar en mi aplicación el procedimiento almacenado así:

Código: Text
  1. //insertar en tabla actividades
  2. SqlCommand CmdIns = new SqlCommand("spInsertarAct", MyCon);
  3. CmdIns.CommandType = CommandType.StoredProcedure;
  4. CmdIns.Parameters.Add(new SqlParameter("@nombreactividad ", SqlDbType.NVarChar, 50));
  5. CmdIns.Parameters["@nombreactividad "].Value =TbActividades.Text;
  6. CmdIns.Parameters.Add(new SqlParameter("@docidentidad", SqlDbType.VarChar, 30));
  7. String doc = Session["MySessionVar"].ToString();
  8. CmdIns.Parameters["@docidentidad"].Value = doc;
  9. CmdIns.Connection.Open();
  10. try
  11. {
  12.     CmdIns.ExecuteNonQuery();
  13. }
  14. catch (Exception ex)
  15. {
  16.     Response.Write("La insercion fallo" + ex.Message);
  17. }
  18. CmdIns.Connection.Close();
  19.  

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
Título: Re: Duda Inserción
Publicado por: Kev en Viernes 13 de Enero de 2006, 20:50
entonces coloca en tu procedimiento una variable de tipo OutPut, me explico: Al igual que @docidentidad varchar(30))  puedes colocar
@ValorRetorno int output

Luego si entra o no al if colocas un valor a @ValorRetorno EJ:
set @ValorRetorno = 1
set @ValorRetorno = 0

Luego en los parametros mandas un indice para este parametro pero indicas que este indice tenga de direccion output, en tu caso creas un array de parametros y luego obtendras en el indice que mandaste como output tendras el valor de la variable de retorno

Salu2
 :comp: