如何在c#环境中将参数传递给oracle函数

时间:2016-02-28 15:51:41

标签: c# oracle

我在网上搜索执行oracle存储函数并获取它的值 我找到了类似的东西,但我真的不明白,所以我无法找出它的错误...如果有人可以解释的话请 打开与数据库的连接后发生了什么?

public void Get_Office_Desc()
{
    string oradb = "Data Source=mysource;User Id=emp;Password=00;";
    var v_Office_code = Current_Office_code.Text;
    string CommandStr = "F_Get_Office_Desc(:pOfficeCode)";

    using (OracleConnection conn = new OracleConnection(oradb))
    using (OracleCommand cmd = new OracleCommand(CommandStr, conn))
    {
        conn.Open();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add(new OracleParameter("pOfficeCode", v_Office_code));
        cmd.Parameters.Add("pOfficeDesc", OracleType.Char, 128);
        cmd.Parameters["pOfficeDesc"].Direction = ParameterDirection.ReturnValue;

        cmd.ExecuteNonQuery();
        var pOfficeDesc = Convert.ToString(cmd.Parameters["pOfficeDesc"].Value);

        messagebox.show(pOfficeDesc);
    }
}

1 个答案:

答案 0 :(得分:1)

您需要将CommandType设置为StoredProcedure - 就像:

cmd.CommandType = CommandType.StoredProcedure;