2009-11-10 4 views
1

Oracle과 함께 작업하는 방법을 배우고 C#/Visual Studio를 사용하고 있습니다. 그냥 참고로, 나는 this simple tutorial을 따르고, 모든 전제 조건을 완료했다 (데이터베이스가 설치되어 있고 dev 도구가 설치된 ODAC). 데이터베이스에 연결하기위한 객체를 생성해야하는 다음 코드는 "객체 참조가 객체의 인스턴스로 설정되지 않았습니다."라는 예외를 throw합니다. 프로그램을 실행하려고하면 'conn'를 가리 킵니다.OracleConnection 예외 발생

OracleConnection conn = new OracleConnection(); 

연결 문자열을 매개 변수로 전달했는지 여부에 관계없이 동일한 문제가 발생합니다. 필자는 필요한 Oracle.DataAccess 참조 세트를 가지고 있으므로 다른 것을 놓칠 수 있는지 알 수 없습니까?

데이터베이스가 설치되어 작동하지만이 문제가 발생하지 않아야합니다.

+0

당신이 당신의 연결 특성을 가진 tnsnames.ora 파일 설정이 있습니까 있는지 확인

? –

+0

예, 파일에 연결 데이터가 있습니다. 내가 알아야 할게 뭐야? Express Edition 데이터베이스를 사용하고 있습니다.이 파일에는 XE, EXTPROC_CONNECTION_DATA 및 ORACLR_CONNECTION_DATA 항목이 있습니다. –

+1

ODP.NET의 버그입니다 ...이 명령어는 실패하지 않아야합니다. 그렇지 않으면 더 명확한 예외가 발생합니다. 아무도 NullReferenceException을 의도적으로 던지지 않습니다.) –

답변

2

오라클 데이터 공급자를 처음 설치하는 데 어려움을 겪었던 것을 기억합니다. 내 tnsnames.ora 파일은 C : \ oracleInstallDir \ 10.2.0 \ client_1 \ NETWORK \ ADMIN 디렉토리에 있습니다.

내 tnsnames.ora를이처럼 보였다 :

XE= 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) 

것은 당신이 Oracle.DataAccess 참조하여 C# 프로젝트에 추가되어 있는지 확인합니다. 그리고 또한

using Oracle.DataAccess.Client; 

public class OracleMgr{ 
    public OracleMgr(){ 
    string connectionStr = "Data Source=XE;User Id=user1;Password=abc"; 
    OracleConnection conn = new OracleConnection(connectionStr); 
    do stuff... 
    } 
}