5

個人のユーザー設定を sql 2000 データベースに保存する簡単な方法はありますか。理想的には、すべての設定を 1 つのフィールドにまとめて、設定を追加するたびにテーブルを編集する必要がないようにします。誰かが例を持っている場合、設定クラスをシリアル化する方向に沿って考えています。

永続ストレージに保存されている組み込みの .NET ユーザー設定を使用したくない理由は、仕事で超必須プロファイルを使用しているため、ユーザーがログオフすると設定がクリアされるため、面倒です。以前にこれに対する解決策を求めて投稿しましたが、あまり反応がありませんでした。

4

4 に答える 4

4

VS デザイナーは、プロパティ設定をApplicationSettingsBaseクラスに保持します。デフォルトでは、これらのプロパティはユーザーごとの XML ファイルにシリアライズ/デシリアライズされます。データベース機能を追加できるカスタムSettingsProviderを使用して、この動作をオーバーライドできます。VS で生成されたクラスSettingsProviderに属性を追加するだけです。Settings

[SettingsProvider(typeof(CustomSettingsProvider))]
internal sealed partial class Settings { 
   ...
}

これの良い例はRegistrySettingsProviderです。

私はここで同じ方法で別の同様の質問に答えました.

于 2008-10-05T04:32:11.693 に答える
1

C# でクラスを簡単にシリアル化できます: http://www.google.com/search?q=c%23+serializer。XML を varchar フィールドに格納することも、バイナリ シリアライザーを使用する場合は、実際には単なるバイナリである「イメージ」データ型に格納することもできます。

于 2008-10-05T02:10:11.700 に答える
1

データベースにシリアル化するか、名前と値のペアを含み、UserId をキーとするユーザー設定テーブルを作成することができます。この方法の利点は、RDMS ツールを使用してクエリと更新を行う方が簡単であることです。

于 2008-10-05T02:15:53.997 に答える
0

まず、テーブルが必要です。

create table user_settings
(
  user_id nvarchar(256) not null,
  keyword nvarchar(64) not null,
    constraint PK_user_settings primary key (user_id, keyword),
  value nvarchar(max) not null
)

次に、API をビルドできます。

public string GetUserSetting(string keyword, string defaultValue);
public void SetUserSetting(string keyword, string value);

すでに CRUD 開発を行っている場合 (データベースの存在と可用性から推測します)、これは簡単に実装できるはずです。

于 2008-10-05T04:08:05.253 に答える