5

有没有一种简单的方法可以将一个人的用户设置存储在 sql 2000 数据库中。理想情况下,所有设置都在一个字段中,这样我就不必每次添加设置时都编辑表格。如果有人有示例,我正在考虑序列化设置类。

我不想使用存储在持久存储中的内置 .NET 用户设置的原因是工作使用超级强制配置文件,因此在用户注销时,设置会被清除,这很痛苦。我之前发布过要求任何解决方案,但没有得到太多回应。

4

4 回答 4

4

VS 设计器将属性设置保存在ApplicationSettingsBase类中。默认情况下,这些属性被序列化/反序列化为每个用户的 XML 文件。您可以使用自定义SettingsProvider覆盖此行为,您可以在其中添加数据库功能。只需将SettingsProvider属性添加到 VS 生成的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 回答