0

我正在设计一个 ASP.NET Web 窗体应用程序,该应用程序将用于使用自定义值和过滤器动态查询数据库。

例如:

  • 拉起 3 个字段:SKU、描述、价格、颜色。

  • Description 的值应该是 ProductName + 逗号 + 空格 + Description。

  • Price 的值应为 Price + 10.00。

  • 如果 SKU = 123,颜色的值应该是红色。

我需要将这些“规则”存储在我的 SQL 数据库中,以便以后可以根据这些规则查询我的数据库。

最初,我想将规则存储为 SQL 文本,如“ProductName + ', ' + Description”,然后在我的动态 SQL 中使用它。

但是如果我这样做的话,有几件事是行不通的:

  1. 区分列名和静态文本。(我想单引号会解决这个问题)
  2. 不同的数据类型(假设连接时)
  3. 案例陈述
  4. 还有 where 子句。

我需要一些想法来解决这个问题——我的数据库结构以及如何从这些规则中查询。

我正在使用 ASP.NET Web 表单、SQL Server 数据库。

谢谢你的帮助。

4

2 回答 2

0

我最终创建了一个包含字段(FieldID、FieldName)和值(Value、ValueType、Datatype、FieldID)的表。因此,如果我需要Description等于 ProductName + comma + space + Description,我将在 Fields 表中有一条 FieldName="Description" 的记录和 ProductName、comma+space 和 Description 的值记录。ProductName 和 Description 的 ValueType 为“Field”,“,”(逗号空格)为“Static”。

然后,我使用基于这些属性的参数构造了我的 sql 查询。

于 2012-06-10T16:53:50.207 回答
0

对于这个我想到的想法是定义一个业务规则表并将值放入其中: BR_PK BR_CODE BR_VALUE
1 SKU_Fields P.SKU, P.Description, P.Price, P.Color
2 Price_Val P.Price + 10


您可以加入动态查询以获取该数据并加入其他表的数据,但您必须保持别名与您在业务规则表中定义的相同。

我会尝试找到一些更好的方法,但它立即出现在我的脑海中。

于 2012-05-18T13:09:23.480 回答