1

既に行われていること。 私は、クライアントマシンにインストールされ実行されている.Net Framework 4.5とFile Based Sql Server Expressデータベース(mdf)を使用してWindowsフォームアプリケーションを構築しました。デスクトップアプリケーションセットアップのインストール中にファイルベースのSQL Server Expressデータベース(mdf)をアップグレードする方法

変更が必要ですか? 新しい要件が導入されましたので、いくつかのテーブルに新しいカラムを追加し、データベースに新しいテーブルをいくつか追加して、ローカルマシン上で実行しています。

要件とは何ですか? インストール中に適用したデータベースのアップグレードを使用して、すべてのクライアントアプリケーションデータを保存する必要があります。

私はこの要件を達成しようとしましたか? 標準インストールで試しましたが、標準的な方法でインストールしようとすると、既存のデータファイルを削除して再インストールするため、既存のデータが失われました。

答えて

1

アプリケーションで実行します。 「バージョン」という新しいテーブルを導入し、そこにスキーマのバージョンを格納します。

CREATE TABLE Version (VersionNumber int) 

アプリケーションにSQLアップグレードスクリプトを格納します。すべてのスクリプトはバージョン番号に属している必要があります。

アプリケーションの起動後にバージョン番号を確認し、必要なスクリプトを実行します。特定のスクリプトを実行した後、バージョン番号をテーブルに挿入します。

バージョンテーブルがまったく存在しない場合は、作成してすべてのスクリプトを実行するだけです。

+0

ありがとうございます。しかし、既存のデータベースの削除の問題については、アプリケーションを再インストールまたはアップグレードすると、既存のファイルが削除されます。 –

+1

非常に単純です:データファイルを別の場所に保管してください。たとえば、 "Environment.SpecialFolder.CommonApplicationData"(= C:\ ProgramData - はユーザー間で共有されます)。 –

関連する問題