System.Data.SQLite
을 사용하여 프로그램의 데이터 및 설정을 WPF 리본 응용 프로그램에 저장하고 있습니다.데이터베이스가 닫힌 후에 데이터베이스 쿼리가 실행됩니다.
프로그램을 열면 열 SQLite 데이터베이스를 선택하라는 메시지를 표시 한 다음 SQLite 데이터베이스의 설정 테이블에서 몇 가지 설정 (프로젝트 이름, 마지막으로 열었던 시간 등)을 읽습니다.
응용 프로그램이 닫히면 RibbonWindow.Closing
이벤트에서 SQLiteConnection.Close()
이 호출됩니다.
사용자는 데이터베이스를 닫고 새 데이터베이스를 열 수도 있습니다.
이러한 이유로 설정이 프로젝트 정보보기에 표시되는 데 몇 초 정도 걸릴 수 있습니다. 이 과정에서 사용자가 응용 프로그램 닫기 버튼을 클릭하거나 프로젝트 파일을 닫아 다른 사람이 열 수있게하면 InvalidOperationException
에 Database is not open
이라는 메시지가 표시됩니다.
프로그램을 닫을 때 모든 작업을 방해하는 가장 좋은 방법은 무엇입니까?
상위 WPF 창에 대해 창 폐쇄 및 종료 이벤트를 사용하지 않는 이유가 무엇입니까? – Nate
이것은 응용 프로그램의 수명 동안 SQLiteConnection을 열었 음을 의미합니다. 먼저이 문제를 해결하기 시작할 것입니다. – Steve
@ 스티브 나는 이것이 왜 문제인지 이해할 수 없다. 프로그램의 거의 모든 단일 액션은 데이터베이스에 어떤 식 으로든 액세스하므로 전역 적으로 사용 가능한 연결을 갖는 것이 이치에 맞습니다. – yakatz