我遇到了嚴重問題,試圖從SP獲取數據。我試圖這樣做:如何從.NET中的存儲過程返回oracle輸出參數
OracleCommand ora_cmd = new OracleCommand("a6r1.PR_ABC_P_ALTA_TARJETA_PAYWARE", ora_conn);
ora_cmd.BindByName = true;
ora_cmd.CommandType = CommandType.StoredProcedure;
int success= new int();
ora_cmd.Parameters.Add("Lc_Param_Issuer", OracleDbType.Varchar2, issuer, ParameterDirection.Input);
ora_cmd.Parameters.Add("Ln_Param_Valid_Product", OracleDbType.Varchar2, DropDownListProducto.SelectedValue.ToString(), ParameterDirection.Input);
ora_cmd.Parameters.Add("Ln_Param_Total", OracleDbType.Int32, parsed, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Param_User", OracleDbType.Varchar2, user, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Encrypted_Password", OracleDbType.Varchar2, pass, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Exito", OracleDbType.Int32, success, ParameterDirection.Output);
ora_cmd.Parameters.Add("Lc_Error", OracleDbType.Varchar2, errorMessage, ParameterDirection.Output);
但它沒有返回任何東西到變量成功或errorMessage。我究竟做錯了什麼?有沒有更好的辦法?它直接在Oracle上執行時可以正常工作。
是的,你是絕對正確的。我沒有料到oracle參數對sql的特殊性。比你非常。 –
'if(ora_cmd.Parameters [「Lc_Exito」])。value == 0)'中有一個額外的括號。你的意思是if(ora_cmd.Parameters [「Lc_Exito」]。value == 0)'? – stephen