在调试允许创建记录的函数时,无法获得过程的输出。“Output”从不更改其初始化值(“”)。
string Agregar(Empleado reg)
{
string mensaje = "";
string output = "";
SqlConnection cn = new SqlConnection(cadena);
try
{
cn.Open();
SqlCommand cmd = new SqlCommand("sp_pregunta02_3 @codEmp,@nom,@ape,@idpais,@email", cn);
cmd.Parameters.AddWithValue("@nom", reg.nomEmployee);
cmd.Parameters.AddWithValue("@ape", reg.apeEmployee);
cmd.Parameters.AddWithValue("@idpais", reg.idpais);
cmd.Parameters.AddWithValue("@email", reg.emailEmployee);
cmd.Parameters.Add("@codEmp", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
output = cmd.Parameters["@codEmp"].Value.ToString();
mensaje = $"El codigo {output} ya existe";
if (!output.Equals("0"))
mensaje = $"Se ha registro el Empleado de codigo {output}";
}
catch (SqlException ex)
{
mensaje = ex.Message;
}
finally
{
cn.Close();
}
return mensaje;
}
该过程从生成表中没有的随机数的函数返回一个随机雇员代码,如果该代码已经存在,则返回0。
CREATE OR ALTER PROCEDURE sp_pregunta02_3
@codEmp int OUTPUT,
@nom varchar(255),
@ape varchar(255),
@idpais char(3),
@email varchar(255)
AS
BEGIN
SET @codEmp = dbo.fn_pregunta02();
PRINT @codEmp
IF @codEmp <> 0
BEGIN
INSERT INTO tb_employee
VALUES (@codEmp, @nom, @ape, @idpais, @email)
END
END
1条答案
按热度按时间niknxzdl1#
请尝试以下代码:
在存储过程中,必须选择输出