2011-01-13 1 views
3

SQLExpress 데이터베이스를 사용하는 Visual Studio를 사용하여 C# 응용 프로그램을 만들고 있습니다. f5를 눌러 응용 프로그램을 디버깅하고 데이터베이스를 변경하면 bin/debug 폴더에 변경 내용이있는 데이터베이스 복사본이 있다는 것을 알 수 있습니다.Visual Studio에서 C#을 디버깅하는 동안 실제 데이터베이스에 변경 내용을 적용 할 수 있습니까?

그러나 디버깅을 중지 한 다음 다음 번에 데이터베이스의 새 복사본을 bin/debug 폴더에 넣으면 마지막으로 변경 한 내용이 모두 사라집니다.

내 질문은 :

내가 응용 프로그램을 디버깅하고 때 나는 그것이 실제 데이터베이스를 변경할 수있는 방법이 있나요 그 변화는 실제로 저장 또는 그것은 단지의 복사본을 변경하게됩니다 bin/debug 폴더 (실제로 발생하는 경우)?

나는 비슷한 질문을 보았지만 실제 .mdf 파일에서 변경 사항을 영구히 유지할 수 있다면 대답을 찾을 수 없습니다.

내가이 응용 프로그램을 빌드 할 때 지속적으로 조각을 추가하고 모두 함께 작동하는지 테스트하기 때문에 내가 묻는 이유가 있습니다. 테스트 데이터를 입력 할 때 데이터베이스에 머물고 싶은 실제 데이터를 사용하고 있습니다. 그러면 나중에 데이터를 다시 입력 할 필요가 없습니다.

프로세스를 더 잘 이해하는 데 도움이되는 도움이나 정보를 미리 감사드립니다.

답변

10

솔루션 탐색기에서 데이터베이스를 선택하고 "출력 디렉터리로 복사"를 "더 새로운 경우 복사"로 변경하십시오. 나중에 최종 버전을 최종적으로 얻을 때 디버그 폴더의 데이터베이스를 원본 폴더에 복사합니다.

+0

고마워요. 그것은 트릭을했다. 저는 지금 며칠 동안 그 해결책을 찾고있었습니다. – nathant23

+0

덕분에 많은 도움이되었습니다. –

+0

은 저에게 효과적이지 않습니다. bin 데이터베이스 버전은 "하나"/ 원본 db 버전을 업데이트하는 버전이 아닙니다. – ralphgabb

0

데이터베이스를 적절한 위치에 복사하고 구성 파일의 연결 문자열을 변경하여 해당 지점 만 가리 키십시오. 이는 어떤 유형의 앱인지 확실하지 않은 제안 일뿐입니다. 그것은.

2

'새로운 경우 복사'의 문제점은 데이터베이스 구조의 일부를 변경하면 변경 사항은 Debug 디렉토리에서 빌드중인 버전이 아니라 Project 디렉토리의 버전으로 변경됩니다.

또한 비 디버그 실행을 시도 할 때 디버그 위치에서 채점 한 복사본을 사용하고 있지 않습니다.

저는 보통 Postgresql을 사용합니다.하지만이 컴퓨터는 새 컴퓨터이며 MS가이 Lite 버전을 사용한다는 것을 알았습니다. 시도해보기로했습니다. 나는 테이블에서 원하는 역사적인 데이터를 많이 가지고 있으며, 약간의 SQL을 사용하여 수동 조작을 한 다음 데이터베이스의 실제 기능을 계속 만들 수 있습니다.

변경된 버전을 프로젝트 디렉토리에 복사 할 수는 없습니다. 로그 파일이 있고 아무도 거기에 무엇이 있는지를 알지 못하기 때문에 Microsoft는 필사적으로 데이터베이스 파일과 어떤 방식으로도 일치해야하기 때문입니다. (나는 당신도 이미 그것을 시도한 것 같다.)

나는 그것을 실행할 때마다 처음부터 다시 시작하고 싶지 않았고, 당신과 마찬가지로 해결책을 찾지 못했습니다. 그래서 필자는 필사적으로이 버전을 Debug에서 tmp 디렉토리에 복사했습니다. 그런 다음 프로젝트 솔루션 탐색기에서 버전을 삭제했습니다.

그런 다음 버전을 tmp로 드래그하여 솔루션 탐색기에 놓았습니다. (아래에 명시된 것을 제외하고는 구조적으로 원본과 구조적으로 동일합니다.)

이렇게하면 로그 파일이 재생성됩니다.이제 디버그 세션은 준비된로드 된 데이터로 시작됩니다.

경고의 단어. 1) 데이터베이스 구조 변경. 솔루션 탐색기에서 Linq to SQL DBML 파일 (코드에서 데이터베이스의 일부 구조 부분을 변경 한 경우)을 클릭하고 DBML 파일을 마우스 오른쪽 단추로 클릭 한 다음 디자인보기로 이동하십시오. 그런 다음 추가 한 새 테이블이나 뷰를 디자인으로 드래그하십시오.

2) 삭제하고 데이터베이스에 드래그 조금 사기 느낌, 자신에게 때 디버그 모드 복사 데이터베이스 파일과 같은

\ MyDatabaseBackup \ myDatabase_date_time.mdb

에 Form_Open에서 실행되는 함수를 작성하는 데 있기 때문에

언제든지 이전 버전으로 돌아 가면 myDatabase.mdb로 이름을 바꿔야합니다.

관련 문제