2012-06-05 2 views
1

가능한 중복 :
SQL Express Connection string - Relative to application location상대 경로 연결 문자열 vb.net

나는 vb.net로 작성된 데스크톱 응용 프로그램이 있습니다. 이 응용 프로그램은 SQL Server Express 2008 데이터베이스 (.mdf 파일)를 사용합니다. 그냥 좋은 실행 내 PC에서

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Pantheo\Documents\Visual Studio 2010\Projects\Food Manager 2012(new)\Food Manager 2012\Food_CustomerDB.mdf;Integrated Security=True;User Instance=True") 

: 현재 내가 접속이 같은 절대 경로로 문자열을 가지고있다. 나는 그것을 구축하고 .exe가 데이터베이스를 연결할 수 없기 때문에 충돌이 발생하는 defferent PC로 실행되도록합니다.

나는 그것이 상대적으로이 연결 문자열을 사용하기 위해 노력했다 :

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf;Initial Catalog=Food_CustomerDB;Integrated Security=True;User Instance=True") 

성공하지. 누군가 나를 도울 수 있습니까? 기본적으로 C#과 관련하여 톤이 다른 답변이 있음을 알고 있지만 구현할 수는 없습니다. 미리 감사드립니다.

+0

http://stackoverflow.com/questions/3500829/sql-express-connection-string-relative-to-application-location은 아마도 당신이 원하는 것일뿐입니다. 거기에는 코드가 거의 없기 때문에 vb로 쉽게 변환되지 않습니다 –

답변

1

DataDirectory 값은 AppDomain.CurrentDomain 속성 목록에서 추출한 문자열 일뿐입니다. WinForm 응용 프로그램에서 사전 정의되지 않지만 데이터베이스를 열기 전에 설정할 수 있습니다.

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\MyReadWriteFolder") 

다음이 데이터베이스를 넣어 제공 AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf해야 작품과의 연결 문자열 (C : \ MyReadWriteFolder).

+0

그리고 다른 컴퓨터에 데이터베이스를 저장하려면 어떻게해야합니까? 설치자 mabey와 함께? – Pantheo

+0

물론 설치 프로그램 도구가 필요합니다. Visual Studio에서 deplyment 프로젝트로 시작하거나 많은 무료 또는 유료 도구 중 하나를 사용할 수 있습니다. SQL Server를 고객 PC에 설치해야한다는 점도 기억하십시오. 또는 프로그램이 단일 사용자를 대상으로하는 경우 [LocalDB] (http://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc) 버전의 SqlServer – Steve

+0

Thanks Steve를 사용할 수 있습니다. 나는 그렇게 할 것이다. – Pantheo