SQL Server (Standard Edition)가 설치된 경우 코드를 통해 서버 이름을 얻는 방법
-
06-07-2019 - |
문제
SQL Server (Standard Edition)가 설치된 경우 코드를 통해 서버 이름을 얻는 방법.
SQL Server를 연결하기 위해 연결 문자열을 작성하는 동안 서버 이름을 전달합니다. 코드를 통해이 값을 검색 할 수 있습니까?
string sqlConnectionString = string.Format(
"user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB;
connection timeout={3}",
dirDBinfo.UserName, dirDBinfo.Password, "ServerName", dirDBinfo.TimeOut);
해결책
나는 당신이 원하는 것을 이해하는지 잘 모르겠습니다.
이미 연결 문자열이 있고 다른 곳에서 사용하기 위해 서버 이름을 추출하려고하는 경우 다음과 같이 리버스 엔지니어링 할 수 있습니다.
var parser = new SqlConnectionStringBuilder(connectionString);
var serverName = parser.DataSource;
연결 문자열을 처음으로 구성하는 경우 :
- 클라이언트 코드가 실행중인 컴퓨터의 SQL 서버에 연결하려는 경우
(local)
서버 이름의 경우. SQL 서버에 인스턴스 이름이있는 경우 다음과 같이 지정하십시오.(local)\myinstancename
. - 어떤 서버에 연결 해야하는지 미리 알지 못하면 다른 곳에서 해당 정보를 얻는 것은 귀하에게 달려 있습니다.
다른 팁
이 연결에서 select @@ servername을 실행할 수 없습니까?
서버가 로컬 컴퓨터에 있습니까?
그렇다면 서버 이름을 설정하십시오 localhost
.
그렇지 않다면 sqldatasourceenumerator를 사용하십시오.
또한 연결 문자열을 구축하는 대신 사용합니다 String.Format
, 당신은 a를 사용해야합니다 sqlconnectionstringBuilder. 이것은 세미콜론으로 값을 처리합니다.
예를 들어:
var builder = new SqlConnectionStringBuilder();
builder.UserID = dirDBinfo.UserName;
builder.Password = dirDBinfo.Password;
builder.Server= "localhost";
builder.UserID = dirDBinfo.UserName;
builder["Trusted_Connection"] = "no";
builder.Database = "TestDB"
builder.ConnectTimeout = dirDBinfo.TimeOut;
제휴하지 않습니다 StackOverflow