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());
}
}
}