繁体   English   中英

如何将Oracle数据库连接到Visual Studio C#项目

[英]How to connect Oracle Database to Visual Studio C# project

我正在尝试连接在Oracle 11g中创建的数据库。 这是我想用来检查VS中连接的简单代码,但它甚至不起作用:

    OleDbConnection conn = new OleDbConnection("Provider=MSDAORA; Data Source = localhost; User ID = library; Password = library; Unicode = True");
    private void button1_Click(object sender, EventArgs e)
    {
        conn.Open();
    }

单击按钮时出现此错误:

System.Data.dll中发生了类型为'System.Data.OleDb.OleDbException'的未处理异常

附加信息:尝试检索文本以获取错误ORA-01019时出错

当我转到服务器资源管理器->添加连接并输入我的数据库信息时,它工作正常并且连接显示在服务器资源管理器中。

我也在VS中得到警告:

严重性代码说明项目文件行抑制状态警告正在构建的项目“ x86”的处理器体系结构与引用“ Oracle.DataAccess,版本= 4.112.2.0,文化=中性,PublicKeyToken = 89b483f429c47342”的处理器体系结构之间不匹配。 ,processorArchitecture = AMD64”,“ AMD64”。 这种不匹配可能会导致运行时失败。 请考虑通过Configuration Manager更改项目的目标处理器体系结构,以使项目和引用之间的处理器体系结构保持一致,或者依赖具有与项目目标处理器体系结构相匹配的处理器体系结构的引用来进行依赖。 图书馆1

我真的建议您使用Oracle的ODP.net。 它在Oracle和.NET之间非常有效地工作,并且可以利用通过Oracle Call Interface(OCI)提供的许多低级功能(例如,批量插入/更新)。

从那里,ODP.net有一个OracleConnectionStringBuilder类,可以消除大多数数据库遇到的连接字符串困难:

OracleConnectionStringBuilder sb = new OracleConnectionStringBuilder();
sb.DataSource = "<your datasource>";
sb.UserID = "library";
sb.Password = "library";

OracleConnection conn = new OracleConnection(sb.ToString());
conn.Open();

如果您的数据库是远程数据库,那么Oracle的EZ Connect可让您不必担心TNS名称:

sb.DataSource = "hostname.whatever.com:1521/ServiceName";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM