2014-03-24 4 views
0

내 Windows Phone 응용 프로그램에서 Sqlite 데이터베이스를 사용하고 있습니다. 데이터를 검색 할 수 있지만 모든 데이터를 추가/업데이트하는 동안 "읽기 전용"예외가 발생합니다. 난 내 에뮬레이터/장치에서 응용 프로그램을 실행할 때 나는 아래의 코드Windows Phone 응용 프로그램에서 Sqlite 데이터베이스를 업데이트 할 수 없습니다.

public async void UpdateFavQuote(int quoteid, string option) 
     { 
      var connection = new SQLiteAsyncConnection(_dbpath); 

      if (option == "ADD") 
      { 
       await connection.ExecuteAsync("Update Quotes SET IsFav = 1 where _id =" + quoteid); 
      } 
      else 
      { 
       await connection.ExecuteAsync("Update Quotes SET IsFav = 0 where _id =" + quoteid); 
      }    

     } 

를 사용하고, 그것을 잘 작동하지만, 응용 프로그램이 가게에 게시됩니다 일단, 나는 오류가 시작합니다. 아래 코드를 사용해 보았지만 같은 오류가 발생했습니다.

public void UpdateFavQuote(int quoteid, string option) 
     { 
      var connection = new SQLiteConnection(_dbpath, SQLiteOpenFlags.ReadWrite); 

      if (option == "ADD") 
      { 
       connection.RunInTransaction(() => 
       { 

       connection.Execute("Update Quotes SET IsFav = 1 where _id =" + quoteid); 
       }); 
      } 
      else 
      { 
       connection.RunInTransaction(() => 
       { 
        connection.Execute("Update Quotes SET IsFav = 0 where _id =" + quoteid); 
       }); 
      }    
     } 

앱을 게시하면 동일한 문제가 발생합니다. 어떤 도움을 주시면 감사하겠습니다.

+0

데이터베이스는 어디에 있습니까? – WiredPrairie

+0

@WiredPrairie 다음 위치에 있습니다 - 개인 정적 읽기 전용 문자열 _dbpath = Path.Combine (Windows.ApplicationModel.Package.Current.InstalledLocation.Path, "응용 프로그램 패키지에 없습니다. QuotesDB "); – Mako

+0

응용 프로그램 패키지에 다시 저장할 수 없습니다. 데이터베이스를 읽기/쓰기가 가능한 로컬 폴더에 복사해야합니다. – WiredPrairie

답변

0

읽기 전용이므로 응용 프로그램 패키지에 쓸 수 없습니다. 쓰기가 가능하도록 데이터 파일을 로컬 스토리지에 복사해야합니다. 따라 할 수있는 샘플 here이 있습니다.

관련 문제