2009-05-07 3 views
0

Winforms C# 2.0 응용 프로그램을 빌드하고 있습니다.왜이 OdbcConnection이 System.InvalidOperationException을 던집니까?

m_connexion = new SqlConnection ("server = 192.168.xxx.xxx; uid = ...; pwd = ...; database =) 다음을 사용하여 SLQ Server 데이터베이스에 성공적으로 연결할 수 있습니다. .. "); 우리 회사는 어떤 데이터베이스를 사용할 수 있기를 원하기 때문에

, 나는 ODBC 드라이버를 사용하기 위하여 계속하고 내 명령은 다음과 같이했다 : = 새로운 OdbcConnection ("서버 = 192.168.xxx.xxx

m_connexion; uid = ...; pwd = ...; database = ... ");

그러나 System.InvalidOperationException이 발생합니다. 왜 그런가?

나는 또한 DSN을 사용하려고하지만, 축하합니다. OdbcConnection connection = new OdbcConnection ("DSN = MyDataSourceName"); here을 제안했지만 마찬가지로 System.InvalidOperationException을 throw합니다.

답변

3

연결 문자열에 Provider =가 있어야 ODBC 드라이버가 연결할 서버를 알 수 있습니다. 이 경우 Provider = SQLSERVER라고 생각합니다.

UPDATE

:이 = SQLOLEDB

+0

아니요 작동하지 않습니다. – karlipoppins

+0

음 .... 내가 손으로 이것을 한참 동안 해왔다. Try Provider = SQLOLEDB –

+0

그 트릭의 일부를했습니다! DSN 이름과 uid 및 pwd를 제공하면 이제 작동합니다. 어떤 방식 으로든 내가 UID를 제거하고 pwd를 제거 할 수 있습니까? 목적은 앱을 꺼내는 것입니다. – karlipoppins

2

를 제공 했어야 난 당신이 드라이버를 지정해야합니다 생각합니다. 자세한 내용은 여기를 참조하십시오. http://connectionstrings.com/sql-server-2005#21

+1

Driver = {SQL Native Client}를 시도했지만 동일한 결과를 얻었습니다. – karlipoppins

+0

MDAC를 다시 설치해 보셨습니까? MS에서 다운로드 할 수 있습니다. http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en –

+0

+1 최고의 사이트 및 MDAC 언급 (호기심 OS가 m_OLogin을 사용 중입니다!) – Andomar

0

DSN을 지정하면 ODBC 제어판을 사용하여 DSN을 구성해야합니다. 관리 도구 아래의 "데이터 원본 설정 (ODBC)"이라고합니다. 패널에는 또한 "테스트"버튼이있어 문제의 원인을 자세히 알려줍니다.

P. "데이터베이스 독립적"이라는 것은 ODBC 연결, 명령 및 데이터웨어 하우스를 사용하는 것보다 훨씬 더 효과적입니다. 각 대상 데이터베이스에서 쿼리를 실행해야합니다. 각 테스트 서버가없는 경우에는 수행 할 수 없습니다. 그래서 내가 당신이라면 이미 SqlConnection을 사용하여 코드를 작성할 것입니다.

+0

네, 알아요. :) – karlipoppins

관련 문제