我正在尝试连接到Oracle Express 11g。我在Visual Studio 2015中使用ODAC 12c。以下是我尝试连接的方式:
OracleConnection con;
con = new OracleConnection("User Id=SYSTEM;Password=manager;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.22)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)))");
con.Open();
应用程序崩溃并提供Exception
(不是OracleException
):Object reference not set to an instance of an object.
如果我没有设置连接字符串,则会按预期提供OracleException
。怎么了?
答案 0 :(得分:1)
OracleConnection使用Oracle.DataAccess DLL(不推荐使用,请阅读ODP.net)
您可能必须安装oracle客户端11g才能提供neccessery DLL。 几点:
答案 1 :(得分:0)
请确保引用正确,并且Oracle.DataAccess.dll的版本正确。
请按照以下步骤操作。它对我有用。
在Oracle安装路径上的“ <> product \ 12.2.0 \ client_1”中找到并复制oraons.dll文件
将文件粘贴到“ <> product \ 12.2.0 \ client_1 \ bin目录
尝试再次调用代码。
答案 2 :(得分:0)
请尝试以下解决方案:
string connString = "User Id=SYSTEM;Password=manager;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.22)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)))";
OracleConnection conn = new OracleConnection();
conn.ConnectionString = connString;
conn.Open();