2016-07-05 3 views
0

첫 번째 점 :이 질문은 이미 here으로 대답되었지만 문제가 해결되지 않는다고 생각합니다. 나는 또한 (아직) 내 평판이 50 점 미만이기 때문에 질문에 대해 논평 할 권한이 없다.Visual Studio 2010에서 데이터베이스 파일에 액세스 할 수 없음 (SQL Server Compact) C#

내 프로그램이 관리자 권한이없는 컴퓨터에 설치되어

, 그것은 "PayeeList.SDF는"App에서

을 할 수 없습니다이 오류를 데이터베이스에

액세스를 던졌습니다 매니페스트, 관리자 권한으로 시작 프로그램 추가,이 문제는 발생하지 않지만 프로그램을 시작하면 관리자 권한을 묻습니다. 프로그램을 관리자 권한없이 실행하고 싶습니다.

이들은 내 파일 설치 등록 정보와 아래 데이터베이스의 파일 등록 정보입니다.

File Installation Properties of visual studio setup deployment.

Properties

두 번째 점 :

내가 올바르게하고 있어요 알려 주시기 바랍니다. 유래에 원래의 질문에

솔루션 :

사용하십시오 | DataDirectory를을 | 연결 문자열에. 나는 이것이이 내 문제를 해결할 것입니다 변경하는 경우 "MyDB.sdf | | DataDirectory를 데이터 소스 ="

여기 는

를 ConnectionString = 예입니다?

enter image description here

It gives me this ERROR when I click OK.

세 번째 점 : 나는 확인을 클릭하면 난 아직도이 오류가 발생합니다.

더 많은 정보가 필요하면 알려 주시기 바랍니다.

답변

1

고려해야 할 두 가지가있을 수 있습니다 :

  1. 설치 디렉토리 : 관리자 권한없이 는 Windows가 설치 디렉토리에있는 파일을 변경하는 것을 허용하지 않습니다 (프로그램 파일 또는 프로그램 파일 (86)) .

    당신은 자신의 디렉토리를 작성하고 당신의 데이터베이스를 저장할 수 있습니다 :

    사용자 디렉토리 \의 AppData \ 로밍 \

    Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData)

    현재 로그인 한 사용자는 액세스 할 수 있습니다. 당신이 사용할 수있는 모든 사용자의

    :

    C : \ 경우 ProgramData

    Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData)

    는 모든 사용자가 액세스 할 수 있습니다.

  2. 를 ConnectionString : 그것은 현재의 응용 프로그램 내에서 쉽게 접근 할 수 있도록 당신은 연결 글로벌 정적 속성에 문자열 또는 변수를 저장할 수 있습니다. Application.StartupPath을 사용하면 현재 응용 프로그램 디렉터리를 가져올 수 있습니다.

또는 당신은 당신이 app.config 파일에 ConnectionString을 수정할 수 있습니다 자신의 내 연결 문자열에

string path =Application.StartupPath; // or Any Path 
AppDomain.CurrentDomain.SetData("DataDirectory", path); 
+0

입니다 : 당신은 또한 설정 DataDirectory를 경로 코드를 사용할 수 있습니다

Connection String

app.config''App.Config 파일에서 연결 문자열을 수정하려면 어떻게해야합니까? 내가 작성한 코드는 무엇입니까? –

+0

죄송합니다. 문제는 내가 예상했던 것과 다를 수 있습니다. 답변을 주셔서 감사합니다. 내 예외 설정을 변경하고 나는, 내 프로그램 폴더에 기본적으로 허용되지 않는 파일을 읽고 쓰는 것을 알았다. 나는 응용 프로그램 폴더에서 파일을 읽고 쓰고, 나는 그것을 시험해보아야한다. –