2011-07-03 2 views
0

Microsoft Visual Studio .NET 2008을 사용하여 데스크톱 응용 프로그램을 만들고 있습니다. 데이터베이스에 .sdf 파일을 사용하고 있습니다. 내 문제는 내 기록을 변경 (새로 추가, 삭제, 업데이트)하면 변경 사항은 내 응용 프로그램이 실행되는 동안에 만 반영됩니다. 응용 프로그램을 다시 시작하면 변경 사항이 적용되지 않습니다.응용 프로그램 닫기 후 데이터베이스 파일 .sdf가 업데이트되지 않습니다.

나는 기본 연결 문자열을 사용하고

string conString = Properties.Settings.Default.DataConnectionString; 
SqlCeConnection con = new SqlCeConnection(conString); 
con.Open(); 

이 데이터베이스에 대한 비주얼 스튜디오에 의해 주어진 값은

데이터 소스 =입니다 | DataDirectory를 | \ Data.sdf

내가 뭘하고 있는지 모르지만 모든 쿼리가 실행 중입니다. 당신은 '항상 복사'database.sdf

현재 연결 문자열 및 현장 응용 프로그램의 '출력 디렉토리에 복사'로 설정하지 않은, 변경할 수 없습니다 각 호출 될 경우

답변

0

솔루션을 발생 탐구 시간이 데이터베이스에 연결할 수

안녕

+0

기본적으로 '새로운 경우 복사'로 설정된 '출력 디렉토리에 복사'... 정확한이 ... – vince

3

당신은 VS.NET에서 실행 때마다, 그것은 당신의 bin 폴더에 솔루션에서 자위대 파일을 복사, 마지막에서 있었던 빈/자위대 파일을 덮어 쓰기한다 운영. sdf 파일의 속성을 "copy always"대신 "copy if newer"로 변경하십시오.

+0

@ 제이슨은 .. 기본적으로이 있다는 것이다 'Copy if newer'로 설정하십시오. – vince

+0

"복사 안 함"옵션으로 설정해보십시오 (정확하게 호출 된 것인지 확실하지 않음). 문제가 해결되는지 확인하십시오. 이 방법이 효과가 있다면 db 스키마를 업데이트 할 때마다 데이터베이스를 변경해야한다는 것을 기억해야합니다. – Jason

+0

나는 이것이 문제를 순간적으로 해결할 수 있다고 생각한다. 나는 좀 더 일해야하고 이것이 올바른 대답인지 여부를 알려야한다 ... 또한 오류를 주었다. 그래서 데이터베이스를 디버그 폴더에서 bin으로 복사해야한다./debug 폴더 그 자체로는 복사하지 않습니다 ... 나는 최종 결과에 대해 곧 알게 될 것입니다 .. 당신의 도움에 감사드립니다. – vince

1

응용 프로그램 폴더를 확인하고 데이터베이스 파일이있는 bin 파일에서 데이터베이스 파일을 호출하는지 확인하십시오.

무엇인가 :

string startPath = Application.StartupPath; 


var filepath = startPath + "\\" + "Database.sdf"; 

private SqlCeConnection conn = new SqlCeConnection("Data Source={0};Persist Security Info=False;",filepath); 

감사

관련 문제