编码实践:如何避免硬编码?

时间:2009-05-16 19:22:12

标签: asp.net database webforms

我在数据库中有一个表存储4个类,表的结构是ID(GUID),描述。我将类别加载到下拉列表(asp.net webform)中,以允许人们根据他们选择的内容选择一个类别。然后,我将显示与其选择相关的信息并隐藏其他信息。

目前,我根据我在代码后面硬编码的GUID做一个“选择案例”,以显示相关信息。有没有更好的方法来做这个没有硬件代码的GUID背后的代码?

5 个答案:

答案 0 :(得分:4)

Guid / Description ...

相关联的数据是什么

您硬编码的数据听起来像是被添加到数据库本身的候选者。

如果它是Category / Guid的一条信息,请考虑扩展您的数据库表以存储该信息。

如果它是Categor y / Guid的多条信息,那么请考虑创建一个上面有CategoryID的新表,以及Category之间的外键关系表和您的ExtraInfo

答案 1 :(得分:1)

您可以在应用启动时向数据库查询GUID,并将其缓存在静态Dictionary中。

答案 2 :(得分:1)

您可以将GUID存储在Web配置中并在运行时加载它。然后,您可以轻松地将该GUID替换为另一个不必重新编译的GUID。

答案 3 :(得分:0)

您应该有一个Categories表和一个Posts表(或者您将用您的类别标记的任何表)。在Posts表中,您有一个CategoryID列(假设每个帖子只能属于一个类别),因此您只能在一个位置拥有类别名称(规范化您的数据)。

渲染下拉列表时,从数据库中选择GUID:s。没有硬编码,如果您添加其他类别(或删除一个类别),下拉列表将自动反映可用的类别。

答案 4 :(得分:0)

如果将下拉列表绑定到Category行或包含类别名称和值的元组,则可以使用Guid属性在代码隐藏中加载SelectedValue。然后,您将在下拉列表中设置DataTextFieldDataValueField