/// <summary>
/// 執行存儲過程獲取帶有Out的參數
/// </summary>
/// <param name="cmdText">存儲過程名稱</param>
/// <param name="outParameters">輸出的參數名</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static string ExecToStoredProcedureGetString(string cmdText, string outParameters, OracleParameter[] oracleParameters, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
//OracleParameter[] SqlParameters = {
// new OracleParameter("ZYH", OracleDbType.Varchar2,"",ParameterDirection.Input),
// new OracleParameter("YJJE", OracleDbType.Varchar2,100,"", ParameterDirection.Output)
//};
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(oracleParameters);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
return cmd.Parameters[outParameters].Value.ToString();
}
}
/// <summary>
/// 執行存儲過程獲取帶有Out的游標數據集
/// </summary>
/// <param name="cmdText">存儲過程名稱</param>
/// <param name="outParameters">輸出的游標名</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static DataTable ExecToStoredProcedureGetTable(string storedProcedName, OracleParameter[] oracleParameters, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(storedProcedName, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(oracleParameters);
OracleDataAdapter oda = new OracleDataAdapter(cmd);
conn.Open();
DataSet ds = new DataSet();
oda.Fill(ds);
conn.Close();
return ds.Tables[0];
}
}
/// <summary>
/// 執行存儲過程沒有返回值
/// </summary>
/// <param name="cmdText">存儲過程名稱</param>
/// <param name="outParameters">參數</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static void ExecToStoredProcedure(string cmdText, OracleParameter[] oracleParameters, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(oracleParameters);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
/// <summary>
/// 執行sql獲取數據集
/// </summary>
/// <param name="cmdText">sql語句</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static DataTable ExecToSqlGetTable(string cmdText, OracleParameter[] oracleParameters, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddRange(oracleParameters);
OracleDataAdapter oda = new OracleDataAdapter(cmd);
conn.Open();
DataSet ds = new DataSet();
oda.Fill(ds);
conn.Close();
return ds.Tables[0];
}
}
/// <summary>
/// 執行sql獲取數據集
/// </summary>
/// <param name="cmdText">sql語句</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static DataTable ExecToSqlGetTable(string cmdText, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.Text;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
conn.Open();
DataSet ds = new DataSet();
oda.Fill(ds);
conn.Close();
return ds.Tables[0];
}
}
/// <summary>
/// 執行sql執行增刪改
/// </summary>
/// <param name="cmdText">sql語句</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static int ExecToSqlNonQuery(string cmdText, OracleParameter[] oracleParameters, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddRange(oracleParameters);
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
return result;
}
}
/// <summary>
/// 執行sql執行增刪改
/// </summary>
/// <param name="cmdText">sql語句</param>
/// <param name="oracleParameters">所傳參數(必須按照存儲過程參數順序)</param>
/// <param name="strConn">鏈接字符串</param>
/// <returns></returns>
public static int ExecToSqlNonQuery(string cmdText, string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn))
{
OracleCommand cmd = new OracleCommand(cmdText, conn);
cmd.CommandType = CommandType.Text;
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
return result;
}
}
/// <summary>
/// 執行多條Sql獲取返回值
/// </summary>
/// <param name="listSelectSql"></param>
/// <returns></returns>
public DataSet Query(List<string> listSelectSql,string strConn)
{
using (OracleConnection conn = new OracleConnection(strConn)) { OracleCommand cmd = new OracleCommand(); StringBuilder strSql = new StringBuilder(); strSql.Append("begin "); for (int i = 0; i < listSelectSql.Count; i++) { string paraName = "p_cursor_" + i; strSql.AppendFormat("open :{0} for {1}; ", paraName, listSelectSql[i]); cmd.Parameters.Add(paraName, OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output); } strSql.Append("end;"); cmd.Connection = conn; cmd.CommandText = strSql.ToString(); OracleDataAdapter oda = new OracleDataAdapter(); oda.SelectCommand = cmd; conn.Open(); DataSet ds = new DataSet(); oda.Fill(ds); conn.Close(); return ds; } }