代碼備忘:調用存儲過程並返回錯誤值

 

程序調用存儲過程:

int OrderID = 1;

string ReturnDesc = "";

if(bll.ExecuteProc(OrderID, ref ReturnDesc) >= 0)

{

//執行成功

}

else

{

//執行失敗,顯示錯誤信息

Response.Write(ReturnDesc);

}

 


 

ExecuteProc的DAL 方法:

public int ExecuteOrder(int OrderID , ref string ReturnDesc)

{

            SqlParameter[] parameters = {
new SqlParameter("@OrderID ", SqlDbType.Int),
                new SqlParameter("@ReturnDesc", SqlDbType.NVarChar, 100, ParameterDirection.Output, false, 0, 0, string.Empty, DataRowVersion.Default, null)};
            parameters[0].Value = OrderID ;
            parameters[1].Value = ReturnDesc;

            int result = DbHelperSQL.RunProcedure("P_proc1", parameters, out result);
            ReturnDesc = parameters[1].Value.ToString();
            return result;

}

 

 


存儲過程:

ALTER PROCEDURE [dbo].[P_proc1]
(
@OrderID bigint,
@ReturnDesc varchar(100) OUTPUT
)
AS
BEGIN

begin transaction

set @ReturnDesc = '';

if not exists(select ID from Orders where ID=@OrderID )
begin
set @ReturnDesc = '訂單不存在'
rollback transaction
return -1
end

/*
    --執行操作,如果出現錯誤則設置錯誤代碼和結果

    update ... set ... where ...
    if @@ROWCOUNT = 0
    begin
        set @ReturnDesc = 'XXXX出現錯誤'
        rollback transaction
        return -2
    end
*/

COMMIT TRANSACTION
return 0;
END

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章