У меня есть хранимая процедура в моей базе данных, которая выглядит следующим образом:
ALTER PROCEDURE [dbo].[Cambiar_TerceroPedido_copy]
@CodEmp as varchar(2) = '3',
@TipoReg as varchar(2) = 'CF',
@Pedido as integer,
@NuevoCliente as varchar(10),
@NuevoClienteEntrega as varchar(10) = null,
@NuevoClienteFactura as varchar(10) = null,
@NuevoClientePagoCobro as varchar(10) = null,
@autorizador as varchar(10) = null,
@error varchar(100) OUTPUT
AS
...
IF ((SELECT count(distinct T_FACTURAS.FACTURA)
FROM T_FACTURAS INNER JOIN T_FACTURASL
ON T_FACTURAS.CODEMP = T_FACTURASL.CODEMP AND T_FACTURAS.TIPOREG = T_FACTURASL.TIPOREG AND T_FACTURAS.FACTURA = T_FACTURASL.FACTURA
WHERE (T_FACTURAS.CODEMP = @CodEmp)
AND (T_FACTURAS.TIPOREG = @TipoReg)
AND (T_FACTURASL.NUMPED = @Pedido)
AND (gg.dbo.getEsFechaControl(@CodEmp, 'MS', T_FACTURAS.FECHAF) = -1)
) > 0) BEGIN
SET @error = 'ERROR!!! El pedido tiene facturas asociadas. 1º debe eliminarlas' --+ cast (@CodEmp as varchar) + '/' + cast (@TipoReg as varchar) + '/' + cast (@Pedido as varchar) + '/'
Print @error
Return
END
Если я выполняю этот код, я получаю ошибку в консоли Microsoft SQL Server, но я хочу использовать эту хранимую процедура в моем C# коде, и я хотел бы знать, как я могу получить эту ошибку в MessageBox?
Может быть, сохранить ошибку в переменной? А затем добавить параметры, как это?
strsql = "exec [dbo].[Cambiar_TerceroPedido_copy] '" + empresaGlobal.empresaID + "','" + c1 + "','" + c2numPed + "','" + c3provClient + "','" + c3provClient + "','" + c3provClient + "','" + c3provClient + "', 'JoseM'";
SqlCommand cmd = new SqlCommand(strsql, conexion);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@error", SqlDbType.Char, 500);
cmd.Parameters["@error"].Direction = ParameterDirection.Output;