Как добавить существующий файл базы данных в приложение Windows Phone 7 и прочитать данные из него? - PullRequest
1 голос
/ 29 марта 2012

Как добавить существующий файл базы данных, скажем (например: - x.sdf) и сбросить данные, присутствующие в файле базы данных, в локальную базу данных телефона?

Я хочу сделать это, когда конечный пользователь устанавливаетсамо приложение.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Ознакомьтесь с разделом «Развертывание приложений» этой статьи;там вы увидите, как вы можете развернуть базу данных только для чтения вместе с вашим приложением, и что вам нужно будет сделать, чтобы сделать ее доступной для записи после развертывания!

0 голосов
/ 29 марта 2012

Если вам нужна предварительно загруженная БД, вы можете добавить БД sqlCe в свое приложение и заполнить БД исходными данными. затем вы можете скопировать файл БД в ваш ISO Store при вызове вашего Конструктора DBContext.

public Moviadb1DataContext (string connectionString) : base(connectionString)
    {
        IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

        if (!iso.FileExists("Moviadb1.sdf"))
        {
            MoveReferenceDatabase();
        }

        if (!DatabaseExists())
            CreateDatabase();
    }

    public static void MoveReferenceDatabase()
    {
        // Obtain the virtual store for the application.
        IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

        // Create a stream for the file in the installation folder.
        using (Stream input = Application.GetResourceStream(new Uri("Moviadb1.sdf", UriKind.Relative)).Stream)
        {
            // Create a stream for the new file in isolated storage.

            using (IsolatedStorageFileStream output = iso.CreateFile("Moviadb1.sdf"))
            {
                // Initialize the buffer.
                byte[] readBuffer = new byte[4096];
                int bytesRead = -1;

                // Copy the file from the installation folder to isolated storage. 
                while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
                {
                    output.Write(readBuffer, 0, bytesRead);
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...