c#执行存储过程
电脑版发表于:2017/10/11 17:20
含有输入输出参数的存储过程(这里的存储过程是oracle)
using (OracleConnection conn = new OracleConnection("server=127.0.0.1;uid=system;pwd=123456;data source=orcl")) { conn.Open(); using (OracleCommand com = new OracleCommand("myproc", conn)) { //设置执行的命令类型 com.CommandType = CommandType.StoredProcedure; //创建一个输入参数 OracleParameter p = new OracleParameter("pename", OracleType.NVarChar, 64); p.Value = "SCOTT"; //创建两个个输出参数 OracleParameter p_sal = new OracleParameter("psal", OracleType.Int32); p_sal.Direction = ParameterDirection.Output;//设置参数为输出参数 OracleParameter p_job = new OracleParameter("pjob", OracleType.NVarChar, 64); p_job.Direction = ParameterDirection.Output;//设置参数为输出参数 com.Parameters.Add(p); com.Parameters.Add(p_sal); com.Parameters.Add(p_job); com.ExecuteNonQuery(); //如果存储过程返回结果就执行com.ExecuteReader();或者返回一个datatable即可 com.ExecuteReader(); } }
含有返回结果的存储过程(这里的存储过程是sqlserver)
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123456;database=myoa")) { conn.Open(); using (SqlCommand com = new SqlCommand("myproc", conn)) { //设置执行的命令类型 com.CommandType = CommandType.StoredProcedure; //如果存储过程返回结果就执行com.ExecuteReader();或者返回一个datatable即可 SqlDataReader reader = com.ExecuteReader(); if (reader.Read()) { MessageBox.Show(reader[1].ToString()); } } }