首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过C#的odp.net和OCI连接到Oracle

通过C#的odp.net和OCI连接到Oracle
EN

Stack Overflow用户
提问于 2011-04-13 17:33:24
回答 3查看 10.8K关注 0票数 2

我一直在阅读关于如何从我的C# win应用程序连接到我的oracle数据库的文章,但我总是“碰壁”。我决定使用odp.net和OCI,这样客户端计算机就不需要安装客户端,但是我无法让它工作。

我有一个小的测试应用程序,我的代码如下所示,在我的解决方案中,我从oracle OCI添加了以下dll: oci.dll,orannzsbb11.dll和oraociicus11.dll。它们都与最终的.exe文件放在一起。

测试代码:

代码语言:javascript
复制
private static string CONNECTION_STRING =
                  "User Id=hr;Password=hr;Data Source=(DESCRIPTION=" +
                  "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))" +
                  "(CONNECT_DATA=(SID=XE)));Connect Timeout=15;";

        static void Main(string[] args)
        {
            try
            {
                using (var conn = new OracleConnection(CONNECTION_STRING))
                {
                    conn.Open();
                    Console.WriteLine("Connection is: {0}", conn.State.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

问题已经出现在使用中(…)语句,程序就会停止工作,我没有得到任何响应。我需要做什么才能让保监处工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-13 19:43:57

为了能够在不安装完整客户端的情况下使用ODP.NET,您需要使用Oracle Instant Client包(您不能仅从完整客户端复制库):

对于使用

  • Check here v10的requirements.
  • Starting的描述,我强烈建议使用EZCONNECT来简化您的连接字符串。这样如何:

私有常量字符串CONNECTION_STRING="User Id=hr;Password=hr;"+ +"Data Source=127.0.0.1:1521/XE;Connect Timeout=15;";

票数 1
EN

Stack Overflow用户

发布于 2011-04-13 18:18:48

通常,当使用OCI或Oracle数据库产品时,应该定义ORACLE_HOME环境变量并指向您的oracle安装。除了这些库之外,Oracle还使用了其他一些支持文件,并且它正在ORACLE_HOME中搜索这些文件。通常,LD_LIBRARY_PATH被定义为ORACLE_HOME/lib。尝试使用Instant Client,这很可能比手工选择几个库要好。这里有一篇关于如何让它工作的很好的文章:Installing Oracle instantclient basic and instantclient sqlplus on win32你可以省略关于sqlplus的部分。

从otn上的instance-client页面:

即时客户端下载请注意,即时客户端是在针对即时客户端的单独OTN and Distribution许可证下提供的,该许可证允许大多数被许可方在生产环境中免费下载、重新分发和部署。如有必要,请咨询许可证和您的法律部门以获得澄清。有关Instant Client的更多信息,请参阅Instant Client官方站点。

看起来你被允许重新分发实例客户端。

票数 0
EN

Stack Overflow用户

发布于 2011-04-13 19:17:00

阅读Oracle here中的安装说明。本文还讨论了常见的设置问题。

您还需要在解决方案中包含对Oracle.DataAccess的引用和“使用Oracle.DataAccess.Client;”。对于连接,您可能希望使用可通过tnsname文件解析的Oracle SID (尝试从cmd提示符使用tnsping )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5647137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档