c#将用户设置存储在数据库中

时间:2008-10-05 02:06:35

标签: c# .net database repost

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

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

4 个答案:

答案 0 :(得分:4)

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

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

这方面的一个很好的例子是RegistrySettingsProvider

我以同样的方式回答了另一个类似的问题here

答案 1 :(得分:1)

您可以轻松地在C#中序列化类:http://www.google.com/search?q=c%23+serializer。您可以将XML存储在varchar字段中,或者如果要使用二进制序列化程序,可以将其存储在“Image”数据类型中,该数据类型实际上只是二进制数据。

答案 2 :(得分:1)

您可以序列化到数据库中,也可以创建一个包含名称 - 值对的用户设置表,并由UserId键入。这样做的好处是通过RDMS工具查询和更新更容易。

答案 3 :(得分: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开发(我假设数据库的存在和可用性),那么这应该很容易实现。