2011-09-15 2 views
4

ADO.NET을 통해 MS SQL Sever에 연결하는 클라이언트 응용 프로그램을 만들고 있습니다. 사용자가 데이터베이스에 연결하기 위해 연결 문자열을 지정해야합니다. 그러나 사용자는 컴퓨터에 설치된 SQL Server Express에만 연결해야합니다. 로컬 문자열인지 확인하려면 연결 문자열을 검사해야합니다.연결 문자열이 로컬 시스템을위한 것인지 확인하는 방법

분명한 생각은 CS가 "."로 시작하는지 확인하는 것입니다. 또는 "지역"또는 "* this_machine_name *". 그러나 모든 가능한 경우를 다루는 지 잘 모르겠습니다.

이러한 검사를 수행하는 더 좋은 방법이 있습니까?

UPD : 로컬 컴퓨터에 둘 이상의 SQL Server 인스턴스가있을 수 있으며 인스턴스 이름을 알 수 없다는 것을 의미합니다. 이름없는 인스턴스가있을 수도 있습니다.

UPD2 : 사실 사용자에게 SQLServer 인스턴스 만 지정하도록 요청합니다.

감사합니다.

+0

또한 127.0.0.1을 확인하고 다른 IP의 경우 해당 IP 주소가 호스트 IP 주소 –

+0

과 동일한 지 확인해야합니다. 감사합니다. –

+4

사용자가 전체 연결 문자열을 입력하도록하지 않았습니다. 사용자가 호스트를 제외한 모든 관련 데이터를 입력하고 직접 추가하도록하십시오. –

답변

0

연결 문자열을 검색하고 호스트 이름을 추출한 다음 호스트 이름을 System.Net.Dns.GetHostEntry (String)에 전달하고 voíla! IP 주소가 포함 된 IPHostEntry 인스턴스가 생성됩니다. 127.0.0.1이 있는지 확인하십시오.

+0

CS에 호스트 이름 (예 : "."또는 "(local)")이 없으면이 검사를 건너 뛸 수 있습니다. 좋아, 고마워. –

0

연결 문자열의 유효성 검사가 아니라 데이터베이스 이름, 통합 인증 사용 여부, 사용자 이름 및 암호 여부를 묻는 메시지를 표시하는 것이 쉽지 않을까요? '(로컬)'서버로?

+0

컴퓨터에 SQL Server 인스턴스가 두 개 이상있을 수 있으며 인스턴스 이름을 알 수없는 것이 있습니다. –