剑轩

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

    }
}


关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢