Tag: oracle

将数组传递给存储过程

我必须将数组和字符串传递给存储过程并返回数据表 C#方: public DataTable fetchRequested(string [] empID, string [] account, string [] refNo, string orgID, string Id, DateTime valueDate) { string connetionString = null; OracleConnection con; OracleDataAdapter objAdapter = null; OracleCommand objComm = new OracleCommand(); connetionString = @”Data Source= Payment_devlope; User ID=ORGPAYMENT;Password=OrgPayment”; con = new OracleConnection (connetionString); try { con.Open(); objComm.Connection = con; objComm.CommandType = […]

从Oracle转换为datetime

我知道有很多类似的问题,但我找不到我想要的东西。 这是我的oracle日期: string testdate= “2014-01-07 15:00:00.0000000”; 以下是我尝试转换为datetime的方法: DateTime.ParseExact(testdate, “yyyy-MM-dd HH:mm:ss.fff”, CultureInfo.InvariantCulture) 这会引发格式exception。 有任何想法吗? 我的快速测试也会抛出字符串无效的日期时间exception。 快速测试: Console.WriteLine(DateTime.ParseExact(testdate, “yyyy-MM-dd HH:mm:ss.fff”, CultureInfo.InvariantCulture).ToShortDateString());

从Oracle DB检索图像

所以,我正在使用web api来检索图像!! 但是,在DB处,图像是LongRaw。 我在谷歌看到我需要使用OracleDbType.Blob但是,当我尝试使用它时, public IEnumerable GetFoto(string suspid) { DataSet lretorno = new DataSet(); string connectionString = GetConnectionString(); using (OracleConnection connection = new OracleConnection()) { connection.ConnectionString = connectionString; OracleDataReader reader = null; OracleCommand cmd = new OracleCommand(); cmd.InitialLONGFetchSize = 50000; cmd.Connection = connection; cmd = new OracleCommand(“MOBILE.XAPIMANDADOMOBILE.BUSCAFOTO”, connection); cmd.CommandType = CommandType.StoredProcedure; //variáveis entrada cmd.Parameters.Add(new OracleParameter(“SUSPID”, […]

如何在Entity Framework 4中的LINQ表达式中执行Oracle函数?

我使用的是Visual Studio 2010,C#,Entity Framework 4和Oracle 10g。 我需要能够将数据库函数的结果作为匿名类型的标量属性返回。 我的Oracle模式有两个表,PARENT和CHILD,以及一个函数FNC_ADD。 我使用Visual Studio ADO.NET实体数据模型模板创建了一个实体模型,包括表和函数。 我的.edmx文件的StorageModels部分如下所示: 我创建了一个扩展方法来定义实体数据模型的函数,如下所示: public partial class LINQtest2Entities { [EdmFunction(“LINQtest2Model”, “FNC_ADD”)] public decimal FNC_ADD(decimal V1, decimal V2) { // don’t need to implement the function throw new ApplicationException(); } } 我在LINQ表达式中调用函数,如下所示: using (var context = new LINQtest2Entities()) { var parents = from p in context.PARENTs select […]

OracleDataAdapter,Fill方法挂起,如何处理连接终止/删除/删除?

我有一个C#程序连接到远程服务器来查询数据。 数据非常大,因此查询大约需要2分钟才能完成。 在这2分钟的窗口期间,互联网瘫痪了。 这导致作业无法完成程序停留在获取数据例程中。 它建立了连接,但在选择查询期间它被切断了。 将命令超时设置为30秒不起作用。 遇到此错误时,我需要查询失败,因为程序可以处理失败但无法处理卡住。 谢谢! 更新:包含的代码 OracleConnection connection = new OracleConnection(connectionstring); OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(new OracleCommand(query, connection)); oracleDataAdapter.SelectCommand.CommandTimeout = 30; DataSet dataSet = new DataSet(); try { oracleDataAdapter.Fill(dataSet, table); //Hangs on this line when connection is lost return dataSet; } catch { throw; } finally { dataSet.Dispose(); oracleDataAdapter.Dispose(); } 再次更新: 我需要做的是处理这种情况,因为我不想要一个悬空过程。 […]

使用C#中的Odbc调用Oracle包函数

我在Oracle包中定义了一个函数: CREATE OR REPLACE PACKAGE BODY TESTUSER.TESTPKG as FUNCTION testfunc(n IN NUMBER) RETURN NUMBER as begin return n + 1; end testfunc; end testpkg; / 如何使用Odbc从C#调用它? 我尝试了以下方法: using System; using System.Data; using System.Data.Odbc; class Program { static void Main(string[] args) { using (OdbcConnection connection = new OdbcConnection(“DSN=testdb;UID=testuser;PWD=testpwd”)) { connection.Open(); OdbcCommand command = new OdbcCommand(“TESTUSER.TESTPKG.testfunc”, connection); […]

使用ODP.NET进行Oracle批量更新

看一下这个例子来做批量插入,我假设使用相同的逻辑可以用于更新。 我尝试了以下内容,看看它是否可行,但它没有: string sql = “update TEST set NAME=:newName where NAME=:name”; connection.Open(); OracleCommand command = connection.CreateCommand(); command.CommandText = sql; command.CommandType = System.Data.CommandType.Text; command.BindByName = true; command.ArrayBindCount = 5; string[] originalName = { “Test1”, “Test2”, “Test3”, “Test4”, “Test5” }; string[] newName = { “New Test1”, “New Test2”, “New Test3”, “New Test4”, “New Test5” }; command.Parameters.Add(“:newName”, OracleDbType.Varchar2, […]

c#entity frameworkEF 4.1在运行时更改架构和数据库名称

我搜索了一些主题,但没有找到解决我问题的具体方法。 我的应用程序是ac#commercial app。 我先使用EF 4.1数据库。 我从开发数据库连接生成模型,并创建一个Model.edmx文件和所有EF的东西很好。 我的目标是为客户提供一个应用程序,让他自己创建数据库和数据库用户。 这样做,在运行时我会得到用户名,密码,数据库连接和模式名称参数来连接到客户数据库。 这样,部署应用程序我需要的只是让客户创建一个数据库并将数据库参数添加到app配置文件中。 因此,我的目标是在运行时更改连接字符串和模式参数,而不更改所有自动生成的edmx文件,而不是触及VS生成的代码。 我环顾四周,发现: 对于EF早期版本: 在运行时更改模式名称 – entity framework http://efmodeladapter.codeplex.com 所有其他post都围绕着那个。 我甚至尝试使用第一个邮政编码但没有成功。 但我已经看到EF 4.1带有更好的支持工具来做到这一点,但我找不到它的参考或例子。 重要的是不要从VS更改自动生成的代码。 我是EF的新手,所以我想请求帮助来完成以下任务:a)在运行时更改连接字符串,添加我的用户名,密码和数据库服务器/端口参数b)更改数据库模式 我使用Oracle作为数据库服务器(因为Oracle将架构和用户混合在一起,这会使事情变得更糟)。

在没有tnsname.ora的情况下连接到Oracle

我需要从我的.Net应用程序连接到oracle。 我正在考虑使用ODP.NET 有没有办法连接到Oracle而不依赖于tnsnames.ora文件? 我问的原因是因为我将有数百个不同的连接,我不想依赖于该文件。

任何好的C#代码生成器用于使用oracle存储过程?

我正在寻找一个C#代码生成器,它自动生成C#以访问Oracle数据库上的存储过程。 例如,如果我在架构DEV上有一些包,比如: PACKAGE1与FUNC1,FUN2 PACKAGE2与FUNC3,FUN4 生成器创建代码以从C#运行以下代码: int a = PACKAGE1.FUNC1(12, 34, “hello”); 任何线索?