ConnectionString에 DSN?
-
06-07-2019 - |
문제
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