문제

ConnectionString을 사용할 수있는 데이터베이스를 사용하는 ASP.NET 웹 사이트가 있습니다. 이 DB에 연결하기위한 DSN을 성공적으로 설정했지만 ConnectionString과 함께 올바른 마법을 발견 할 수는 없습니다.

DSN에서 값을 ConnectionString으로 변환하는 간단한 방법이 있습니까? UI에서 이에 대한 명백한 대답이 없다는 것을 알고 있습니다 ... 각 DB 공급 업체는 필요한 것에 따라 DSN을 생성하기위한 다른 UI를 제공합니다. 그러나 나는 UI 아래에서 무대 뒤에서 연결 문자열을 만드는 것과 같은 일을하고 있기를 바라고 있었고, 내가 잘못하고있는 일을 볼 수 있도록 볼 수있었습니다. 이것에 대한 희망이 있습니까? 그렇다면 필요한 정보를 얻는 방법에 대한 조언이 있습니까?

(Connectionstrings.com으로 가서 연결 문자열이 올바른 형식인지 확인하려고 노력하지만 아무것도 작동하지 않는 것 같습니다. 이것이 제가이 이상한 번역을 시도하고있는 이유입니다.)

편집하다: 내가 명확하지 않은 것은 우리가 DSN 항목을 원하지 않는다는 것입니다. 우리는 하나를 만들었고 당분간 그것을 사용했지만 그것을 제거하고 Connectionstring을 사용할 수 있기를 원합니다. 없이 DSN.

도움이 되었습니까?

해결책

OLEDB를 사용할 수 있다면 UDL 파일. 새 텍스트 문서 만 만들면 test.udl 그리고 더블 클릭. 대화 상자를 작성한 다음 메모장으로 다시 열십시오. Voila- 연결 문자열이 있습니다.

ODBC는 조금 더 어렵습니다. ODBC 관리자로부터 파일 DSN을 만들거나 레지스트리 주변을 찌를 수 있습니다. HKLM\Software\ODBC\ODBC.INI\<DSN Name> 시스템 DSN의 경우. 당신은 이름/값 쌍으로 끝날 것입니다. 연결 문자열로 변환 할 수 있어야합니다. 그만큼 \\Driver 실제 DLL을 나열하므로 제공자 이름을 가져와야합니다. HKLM\Software\ODBC\ODBC Data Sources\\<DSN Name>.

ODBC에 OLEDB 제공 업체를 사용할 수 있다면 UDL 트릭을 사용하여 ODBC 파일 DSN에서도 연결 문자열을 빌드 할 수 있습니다. ODBC 연결 문자열은 UDL의 확장 된 속성에 있습니다.

다른 팁

DSN을 만든 경우 DSN ~이다 ConnectionString!

간단히 사용할 수 있습니다 DSN=<YourDSNName> ODBCConnection 객체에 전달하십시오.

예를 들어 C#사용 :

string dsnName = "DSN=MyDSN";
using (OdbcConnection conn = new OdbcConnection(dsnName))
{
  conn.Open();
}

또는 사용할 수 있습니다 OdbcConnectionStringBuilder 수업과 설정 DSN 재산.

레지스트리에 대한 Mark Brackett의 답변을 확장하려면 : 64 비트 창에서 32 비트 ODBC의 경우 레지스트리 경로는 HKLM 소프트웨어 wow6432Node ODBC ODBC.ini 입니다.

제 경우에는 다음과 같이 충분했습니다.

  • 헤더를 제거하십시오
  • 모든 새로운 라인을 세미콜론으로 교체하십시오
  • 버팀대를 그룹 분리기로 사용하십시오

다음은 ODBC Data Source Administrator에서 만든 DSN 파일입니다 (세 번째 탭 - 파일 DSN)

[ODBC]
DRIVER=MySQL ODBC 5.3 ANSI Driver
UID=MyUserName
PORT=3306
DATABASE=mydatabasename
SERVER=localhost

그리고 다음은 내 연결 문자열의 모습입니다.

DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top