Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Oracle.ManagedDataAccess.Client support ExecuteOnQuery()_C#_Asp.net Mvc_Oracle11g - Fatal编程技术网

C# Oracle.ManagedDataAccess.Client support ExecuteOnQuery()

C# Oracle.ManagedDataAccess.Client support ExecuteOnQuery(),c#,asp.net-mvc,oracle11g,C#,Asp.net Mvc,Oracle11g,我使用的是System.Data.OracleClient,有一个存储过程使用ExecuteNonQuery()。现在我正在使用Oracle.ManagedDataAccess.Client,所以我的问题是我可以在Oracle.ManagedDataAccess.Client中使用ExecuteNonQuery() 我以前的代码是 Database db = DatabaseFactory.CreateDatabase(); DbCommand objComm = db.GetSt

我使用的是
System.Data.OracleClient
,有一个存储过程使用
ExecuteNonQuery()
。现在我正在使用
Oracle.ManagedDataAccess.Client
,所以我的问题是我可以在
Oracle.ManagedDataAccess.Client
中使用
ExecuteNonQuery()

我以前的代码是

   Database db = DatabaseFactory.CreateDatabase();
   DbCommand objComm =  db.GetStoredProcCommand("package_name.sp", ab, ab1, ab2, ab3, ab4, ab5, ab6);
   var result = new Collection<Alarm>();
   db.ExecuteNonQuery(objComm); 

更新后的代码可以使用吗?

当然,我正在从Oracle.DataAccess/System.Data.OracleClient转换为Oracle.ManagedDataAccess

在这个过程中,我发现了一些问题:

1.  Make sure you specify your data type in the parameters, otherwise, it has a tendency to fail.
2.  An older version of managed has a CLOB bug that I ran into when you try to select data.  Make sure you get the latest from github.
3.  By default, the tnsnames/ldap/sqlnet location defaults to the application directory in the managed situation.  If you assign ORACLE_HOME environmental variable at the windows level, it'll fix that.
4.  Does the server have the full version of Oracle client?  Do they have both a 64-bit and 32-bit version?  You'll want to make sure you set the environmental variable in the application then to and use the right one, otherwise you'll run into Crystal issues.
5.  Long running executions sometimes have issues if you are using Oracle database 11.1 - https://stackoverflow.com/questions/29847444/odp-net-oracle-manageddataaccess-causes-ora-12537-network-session-end-of-file
示例参数添加

cmd.Parameters.Add("parametername", OracleDbType.Varchar2, 
  parametervalue, ParameterDirection.Input)

请记住,Oracle.ManagedDataAccess继承/实现的结构与System.Data.OracleClient继承/实现的结构来自相同的类/接口,因此您会看到许多相似之处,但并不完全相同。

请注意
。BindByName
默认值为
false


如果不按名称绑定参数,
Oracle.ManagedDataAccess
将按照执行
cmd.Paramaters.Add()调用的顺序绑定参数

我在实现其asp.nethi@Ctznkane525的基础上更改了此文本,谢谢回复。我用代码编辑了我的问题。你能告诉我更新的代码是否有效吗?你没有给你的输入参数赋值。
cmd.Parameters.Add("parametername", OracleDbType.Varchar2, 
  parametervalue, ParameterDirection.Input)