2017-01-13 10 views
0

데이터베이스 위치 및 데이터베이스 이름 만 settings.settings 파일에 저장했습니다. 디버깅 중에 Settings.Settings 파일에서 연결 문자열에 액세스 할 수 있습니다. 하지만 실행 파일을 실행하면 set.settings 파일의 연결 문자열에 사용 된 데이터베이스가로드되지 않습니다. 사용자가 설정 파일을 동적으로 변경할 수 있습니다. 내 연결 문자열은 다음과 같습니다..exe를 실행하는 중에 settings.setting 파일에 액세스 할 수 없습니다.

public static string sd =System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 

public static string co = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sd +"\\Data\\"+ Properties.Settings.Default.db+".accdb"; 
+0

그래서'BaseDirectory.ToString()'과'Properties.Settings.Default.db'는 무엇을 반환합니까? 반환 된 값을 기록하고 볼 수 있습니까? – CodingYoshi

+0

예 .. 테스트 목적으로 나는 디버깅 할 때 원하는 결과를 반환하는 MessageBox.Show()를 사용했습니다. 하지만 .exe를 실행하면 Properties.Settings.Default.db ..... BaseDirectory.ToString()에 저장되지 않은 다른 데이터베이스가 표시되어 원하는 결과도 표시됩니다. – mofidul

+0

설정 파일은 사용자 기반이 아닌 경우 사용자별로 변경하지 않고 응용 프로그램별로 변경합니다. 프로젝트 속성을 사용하고 설정으로 이동할 수 있습니다. 또한 단지'AppSettings'에 연결 문자열을 저장하고 싶을 수도 있습니다. 미안하지만 답변을 작성하지만 내 휴대 전화에 밖에있다. – CodingYoshi

답변

1

프로젝트의 속성으로 이동하여 사용자 기반 대신 응용 프로그램 기반으로 만듭니다. 파일이 응용 프로그램에 의해 잠겨로 사용자가 동적으로 동적으로이 작업을 수행 할 수 settings.setting 파일

없음 사용자를 변경해야하는 경우 지금 직면하고있어

국지적 인 문제입니다. 사용자가 변경 한 경우 응용 프로그램을 다시 시작해야하지만 변경 사항은 파일이 응용 프로그램에 의해 잠겨 있지 않은 경우에만 발생할 수 있습니다.

각 사용자가 다른 연결 문자열을 가져야 만하지 않는 한 연결 문자열을 사용자 기반으로 만들지도 않습니다.

편집

동적 다음 연결을 변경하거나 설정은 XML 파일과 같은 파일을 치료하고 그것을 수정하거나 파일 또는 데이터베이스와 같은 다른 소스에서 연결 문자열을 저장하려면.

+0

동적으로 연결 문자열을 변경해야합니다 ... 그리고 설정을 변경할 때마다 응용 프로그램을 다시 시작합니다. – mofidul