2016-12-17 1 views
0

wpf 응용 프로그램을 배포 중이며 데이터베이스에 연결하는 가장 좋은 방법은 알고 싶습니다.컴퓨터에 설치된 SQL Server 데이터베이스 검색

예를 들어 응용 프로그램을 설치 한 후 SQL Server Express와 연결하기 위해 연결 문자열을 설정해야합니다.

컴퓨터에 SQL Server가 설치되어 있다는 것을 알 수있는 스레드를 읽었으므로 찾은 후에 프로그래밍 방식으로 어떻게 연결합니까?

내가 생각한 또 다른 것은 asp.net에서 web.config로 연결 문자열을 쓸 수있는 파일이 있습니까?

나는 app.config 파일이 있다는 것을 알고 있지만 배포 한 후에는 액세스 할 수 없게되었습니다.

+1

클라이언트와 동일한 컴퓨터에 데이터베이스가 없어야합니다. 데이터베이스를 중앙 위치에 놓고 응용 프로그램을 분 h 할 때 구성 파일에 데이터베이스의 위!를 포함 시키십시오. – mason

+0

하지만 저는 클라이언트 컴퓨터에 SQL을 설치하고이 데이터베이스에 액세스 할 다른 컴퓨터에 동일한 응용 프로그램을 설치합니다.이 서버는 "서버"가됩니다! –

+1

SQL Server는 클라이언트의 개인용 컴퓨터에 설치되지 않은 전용 서버 시스템에 설치하는 것이 가장 좋습니다. – mason

답변

1

작은 응용 프로그램 인 경우 SQL Server, 특히 Express를 동일한 컴퓨터에 두는 것은 아무런 문제가 없습니다. 'localdb'기능도 있습니다. 어쨌든이 코드는 네트워크에서 SQL Server의 모든 인스턴스를 찾습니다. 그런 다음 결과를 표시하고 사용자가 서버를 선택하게하고 결과에서 연결 문자열을 생성 할 수있는 창을 작성할 수 있습니다. 서버의 방화벽 등은이 프로세스의 과정에 참여할 수 있습니다. 일반적으로 서버 이름이 반환되지만 다른 정보는 반환되지 않습니다. 방화벽에 예외를 추가하여이 문제를 해결할 수 있습니다.

private DataTable FindServers() 
    { 

     System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance; 
     DataTable dt = instance.GetDataSources(); 
     return dt; 

    } 
+0

인 경우 연결할 수 있습니다. 이는 고객이 "까다로운"제품 "crud"및 예산 "crud"를 사용하는 작은 응용 프로그램입니다. 감사 –

0

요즘 데이터베이스 레이어는 DataService 또는 MicroService으로 애플리케이션과 분리해야합니다. 데이터 액세스 계층이 될 것입니다.

분리 수준을 필요로하지 않고 데이터베이스에 직접 연결하는 응용 프로그램에 대해 계속 생각하고 있다면 연결 문자열을 저장하기 위해 구성을 사용하는 것이 좋습니다. 데이터베이스가 WPF와 동일한 서버에없는 시나리오를 다루고 싶을 것입니다. 신청.

웹 이외의 응용 프로그램에 대한 구성 파일은 app.config이며 웹 응용 프로그램의 경우 정확히 web.config과 동일합니다.

설치 한 SQL Server 인스턴스를 자동으로 찾는 문제는 간단합니다. 응용 프로그램을 시작하는 컴퓨터에 두 개의 인스턴스가 설치되어 있으면 어떻게됩니까? 앱에서 사용할 것을 어떻게 알 수 있습니까?

관련 문제