2013-07-21 132 views
0

我正在傳遞3個值到我的存儲過程中運行。但是,我的存儲過程包含5個參數。只是想知道我是否需要通過所有5個值才能使其工作,或者3個會執行?從程序傳遞到存儲過程的ASP.NET參數

我也面臨這個問題enter image description here

想知道這個錯誤是由我傳遞NULL值到我的存儲過程?提前致謝。

編輯

下面是我的存儲過程定義的要​​求:

create or replace procedure upd_pre_proc_card 
(prodOrderNo in varchar2, 
userId  in varchar2, 
poDate  in varchar2, /* poDate = 'yyyy-mm-dd' */ 
orderType in varchar2, 
printOption in number) 
+2

它取決於存儲過程中的參數定義,您不在此處發佈,因此我們無法確定。 – Oded

+0

並且請**還向我們展示**您如何從您的ASP.NET代碼中調用此存儲過程! –

回答

0

在您的方案(您提供的存儲過程),是的,你需要提供所有的參數。我相信,在Oracle中,你可以爲參數指定默認值,所以像:

create or replace procedure upd_pre_proc_card 
(prodOrderNo in varchar2, 
userId  in varchar2, 
poDate  in varchar2 default null, /* is optional now */ 
orderType in varchar2, 
printOption in number) 
0

傳遞錯誤到存儲過程繼承人,你應該如何分配前檢查每一個值,這可能是因爲空值或空值的它給一個參數。

if (String.IsNullOrWhiteSpace(orderType)) 
{ 
    Parameters.Add([AddYourValuesHere).Value = DBNull.Value; 
} 
else 
{ 
    Parameters.Add([AddYourValuesHere]).Value = orderType; 
} 
相關問題