3

Windows Phone アプリケーションで esxiting .sdf ファイルを使用しています。データベースを開こうとすると、次のようなエラーが発生します。データベース ファイルへのアクセスは許可されていません [1981,Filename='\Applications\install\OFC425F3-22CC-4A60-A815-40FE......\install\Countries. sdf,SeCreateFile]

私のコード:

private const string strConnectionString = "Data Source = 'appdata:/Countries.sdf'";

 private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        try
        {
            IList<Country> countryList = this.GetCountryList();

        }
        catch (Exception c)
        {
            MessageBox.Show(c.Message);
        }
    }




public IList<Country> GetCountryList()
    {
        // Fetching data from local database
        IList<Country> countryList = null;
        try
        {
            using (CountryDataContext countryDB = new CountryDataContext(strConnectionString))
            {
                IQueryable<Country> countryQuery = from _contry in countryDB._countries select _contry;
               // MessageBox.Show(countryQuery.Count().ToString());
                countryList = countryQuery.ToList();
            }
        }
        catch (Exception c)
        {
            MessageBox.Show(c.Message);
        }
        return countryList;
    }

これで試したとき

private const string strConnectionString = "Data Source = 'appdata:/Countries.sdf'; File Mode =read only;";

次のようなエラーが発生しています:dBは読み取り専用接続で開かれています。インデックスの再構築やパブリック トラッキングのアップグレードなど、初期化後の操作を実行できません。読み取り/書き込み接続で再度開いてください。

データベースを読み取り/書き込みモードで開くには? データベースを開くために必要な権限はありますか (データベースはパスワードで保護されていません)?

4

1 に答える 1

3

常に読み取り専用で開きたいとしますか? その場合は、ファイルを分離ストレージに (コードで) コピーし、アプリがデバイス上で一度データベースを開いてから、デスクトップ上で開かずにプロジェクトにコピーし直す必要があります。

于 2013-07-02T06:56:59.390 に答える