使用C#

时间:2018-04-02 11:18:36

标签: c# asp.net stored-procedures plsql

我有一个名为Get_Added_Request_ID的过程,并且使用此过程我需要返回Request_ID值(VARCHAR2)。我引用了Oracle和Microsoft发布的大量文档,但我找不到一个好的解决方案可能是因为我是Oracle和ASp.NET的新学习者。请有人在这个问题上帮助我。提前致谢 enter image description here

  

- 参数类型模式默认?    - ATTR_ VARCHAR2 IN    - REQUEST_ID VARCHAR2 OUT

2 个答案:

答案 0 :(得分:1)

请查看此link以获取有关如何使用oracle数据提供程序连接到oracle的文档

您应该使用此link中的oracle数据提供程序来连接oracle。

您的方案的示例代码将是

Using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OracleClient;
using System.Data;

namespace CallingOracleStoredProc
{
    class Program
    {
        static void Main(string[] args)
        {
            using (OracleConnection objConn = new OracleConnection("Data Source=*your datasource*; User ID=*Your UserID*; Password=*Your Password*"))
            {
                OracleCommand objCmd = new OracleCommand();
                objCmd.Connection = objConn;
                objCmd.CommandText = "Get_Added_Request_ID";
                objCmd.CommandType = CommandType.StoredProcedure;
                objCmd.Parameters.Add("ATTR_", OracleType.NVarChar).Value = "test";
                objCmd.Parameters.Add("REQUEST_ID", OracleType.NVarChar).Direction = ParameterDirection.Output;

                try
                {
                    objConn.Open();
                    objCmd.ExecuteNonQuery();
                    System.Console.WriteLine("The Request ID is {0}", objCmd.Parameters["REQUEST_ID"].Value);
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine("Exception: {0}",ex.ToString());
                }

                objConn.Close();

            }
        }
    }

}

答案 1 :(得分:0)

使用execute scalar返回1行 - 1列值&将其存储在适当的变量中 例如: - SqlHelper.ExecuteScalar(_connectionString,CommandType.StoredProcedure,“Get_Added_Request_ID”,null);

注意: - ExecuteScalar来自nuget Microsoft.Application Block