close
public string Procedure(OracleConnection Conn, string funName, string[] pararr, string[] parvalue, string p_out)//有輸出變數+回傳值 參數分別為 DB link , package function name , sql變數名稱 , sql變數值 , sql輸出變數 { using (OracleCommand sqlcom = new OracleCommand(funName, Conn)) { Conn.Open(); sqlcom.CommandType = CommandType.StoredProcedure; OracleParameter[] param = new OracleParameter[pararr.Length + 1];//參數變數+輸出變數 for (int i = 0; i <= pararr.Length - 1; i++)//加入變數名稱 { param[i] = new OracleParameter(pararr[i], OracleType.NVarChar, 255); param[i].Direction = ParameterDirection.Input; param[i].Value = parvalue[i]; } param[pararr.Length] = new OracleParameter(p_out, OracleType.NVarChar, 255);//加入輸出名稱 param[pararr.Length].Direction = ParameterDirection.Output; OracleParameter par; for (int i = 0; i < param.Length; i++) { par = (OracleParameter)param[i]; sqlcom.Parameters.Add(par); } sqlcom.ExecuteNonQuery(); return Convert.ToString(param[pararr.Length].Value.ToString()); } } public void voidProcedure(OracleConnection Conn, string funName, string[] pararr, string[] parvalue)//無輸出變數 參數分別為 DB link , package function name , sql變數名稱 , sql變數值 { using (OracleCommand sqlcom = new OracleCommand(funName, Conn)) { Conn.Open(); sqlcom.CommandType = CommandType.StoredProcedure; OracleParameter[] param = new OracleParameter[pararr.Length];//參數變數+輸出變數 for (int i = 0; i <= pararr.Length - 1; i++)//加入變數名稱 { param[i] = new OracleParameter(pararr[i], OracleType.NVarChar, 255); param[i].Direction = ParameterDirection.Input; param[i].Value = parvalue[i]; } OracleParameter par; for (int i = 0; i < param.Length; i++) { par = (OracleParameter)param[i]; sqlcom.Parameters.Add(par); } sqlcom.ExecuteNonQuery(); } } public DataSet curProcedure(OracleConnection Conn, string funName, string[] pararr, string[] parvalue, string p_out)//cursor使用 { OracleCommand sqlcom = new OracleCommand(funName, Conn); sqlcom.CommandType = CommandType.StoredProcedure; OracleParameter[] param = new OracleParameter[pararr.Length];//參數變數+輸出變數 for (int i = 0; i < pararr.Length; i++)//加入變數名稱 { param[i] = new OracleParameter(pararr[i], OracleType.NVarChar, 255); param[i].Direction = ParameterDirection.Input; param[i].Value = parvalue[i]; } OracleParameter par; for (int i = 0; i < param.Length; i++) { par = (OracleParameter)param[i]; sqlcom.Parameters.Add(par); } OracleParameter param1 = sqlcom.Parameters.Add(p_out, OracleType.Cursor); param1.Direction = ParameterDirection.Output; OracleDataAdapter da = new OracleDataAdapter(sqlcom); DataSet ds = new DataSet(); da.Fill(ds, "dtDataList"); return ds; }
文章標籤
全站熱搜