0

이 올바르게 작동하는 프로그램이 있습니다.이 프로그램에서 데이터베이스에 액세스 할 수 있습니다 ...하지만 내 문제는 ... 데이터베이스가 없습니다. 어디에서 내 컴퓨터에 ... 적어도 그것을 찾을 수있는 곳. 모든 .db 파일을 검색하려고했지만 거기에 없었습니다. 내가 만들고있는 프로그램에이 파일을 복사하여 다른 곳에 백업 할 수 있기를 원합니다. 그러나 나는 그것을 발견 할 수 없다. 설치 프로그램을 사용하여 내 이름으로 프로그램 파일에 올바르게 설치하면 작동하며 프로그램이 실행되고 데이터베이스에서 읽습니다. 그래서 당신이 연결을 열려고 시도하고 파일이 존재하지 않는다면 sqlite가 db를 생성 할 것이므로 db를 생성하기 위해 사용하는 코드는 다음과 같습니다. Bsqlite 파일을 찾을 수 없습니다. C#이 수행하는 작업이 무엇인지 확실하지 않습니다.

가 나는 그래서

static public SQLiteConnection dbConnect() 
    { 
     string ConnectString = "Data Source = fman.db;"; 
     SQLiteConnection db = new SQLiteConnection(ConnectString); 
     db.Open(); 
     return db; 
    } 

로 DB를 생성 ...

public void createDB() 
    { 
     string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(sqlLib)).CodeBase); 
     string[] brokenPath = path.Split('\\'); 
     path = ""; 
     for (int i = 1; i < brokenPath.Length; i++)//parse file name and rebuild to remove wrong chars 
     { 
      path += brokenPath[i]; 
      if (i < brokenPath.Length - 1) 
       path += "\\"; 
     } 

     MessageBox.Show(path); 

     if (!File.Exists(path += "\\fman.db")) 
     { 
      MessageBox.Show("File doesn't exist"); 
      SQLiteConnection db = dbConnect(); 
      popDB(db); 
      dbClose(db); 
     } 
다시 잘 작동

ANDS을 확인, 나는 dB 벌금에 액세스 할 수 있어요 그리고 파일을 읽고 쓸 수 있지만 어디서나 파일을 찾을 수 없습니다. 디버그 모드에서 작업하는 경우 바로 bin/debug 파일에 있지만 설치하면 어디로 갈 것입니까? 어떤 도움

+0

어디에 설치 하시겠습니까? –

+0

Program Files/Alternate/FileMan에 설치되어 있으므로 db 파일은 해당 디렉토리에 있지 않습니다. – Bear

+0

좋습니다. 이것은 매우 현지화 된 질문입니다. 데이터베이스가 어디에서 읽혀지고 있는지를 결정할 수 없다면, 데이터베이스를 어디에서 생성했는지 살펴 보는 것이 좋습니다. –

답변

1

이 모든 친절 사전에

타이는 너무 나에게 일어 났을 때 나를 아주 잠시 동안 내 머리를 긁적였다.

마침내 내 프로필의 AppData\Local\VirtualStore 폴더에 데이터베이스 파일이 있습니다.

+1

그래, 아마도 이걸 업데이트 했어야 했어. 이유에 관해서는 100 % 확신 할 수는 없지만 내가 이해하는 것으로부터 Windows는 이제 프로젝트 Program 디렉터리에 쓰는 대신 AppData에서 폴더를 자동으로 사용합니다. 나는 그것이 침묵하는 이유를 모르지만 그것은 Windows가 처리하는 방식 일뿐입니다. 왜 이런 일이 이루어 졌는지, 프로그램의 파일에 쓰는 방법이 어떻게 바뀌 었는지에 대해 설명하면 흥미로울 것입니다. – Bear

관련 문제