0

カスタマイズされた値とフィルターを使用してデータベースを動的にクエリするために使用されるASP.NETWebフォームアプリケーションを設計しています。

例えば:

  • SKU、説明、価格、色の3つのフィールドを表示します。

  • Descriptionの値は、ProductName+コンマ+スペース+Descriptionである必要があります。

  • Priceの値は、Price+10.00である必要があります。

  • SKU = 123の場合、Colorの値はRedである必要があります。

これらの「ルール」をSQLデータベースに保存して、後でこれらのルールに基づいてデータベースにクエリを実行できるようにする必要があります。

最初は、ルールを「ProductName +'、' + Description」のようなSQLテキストとして保存し、これを動的SQLで使用することを考えていました。

しかし、私がそうするとしたら、うまくいかないことがいくつかあります。

  1. 列名と静的テキストを区別する。(私は一重引用符がそれを処理すると思います)
  2. さまざまなデータ型(たとえば、連結する場合)
  3. ケースステートメント
  4. where句もあります。

これを実行する方法、つまりデータベース構造とこれらのルールからクエリを実行する方法についてのアイデアが必要です。

ASP.NET Webフォーム、SQLServerデータベースを使用しています。

助けてくれてありがとう。

4

2 に答える 2

0

最終的に、Fields(FieldID、FieldName)とValues(Value、ValueType、Datatype、FieldID)を使用してテーブルを作成しました。したがって、DescriptionをProductName +コンマ+スペース+Descriptionと等しくする必要がある場合は FieldsテーブルにFieldName = "Description"のレコードと、ProductName、コンマ+スペース、およびDescriptionの値レコードがあります。ProductNameとDescriptionのValueTypeは「Field」で、「、」(コンマスペース)のValueTypeは「Static」です。

次に、これらの属性に基づくパラメーターを使用してSQLクエリを作成しました。

于 2012-06-10T16:53:50.207 に答える
0

私の頭に浮かぶこの1つのアイデアは、ビジネスルールテーブルを定義し、次のように値を入力することです 。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 に答える