2

私はC#に少し慣れていないので、実装しようとしているこのif-thenステートメントに頭を悩ませています。

これが私の目標です。ユーザーがシステムに注文を入力すると、注文ごとに一意の orderID が作成されます。ただし、いくつかの追加機能として、ユーザーがアイテムの数を選択するオプションがあり、同じ orderID を使用してアイテムごとに新しい行が作成されます。アイテムごとに 1 つの一意のキーがあります。これにより、次のようになります。

 ORDERID     KEY     ItemCode

 ORD123      758        2
 ORD123      584        2
 ORD123      582        2

私が抱えている問題は、注文に複数のアイテムがない限り、注文 ID を一意にする必要があることです (上記のように、注文ごとに複数の行を作成します)。

現在のコードで機能するもの: 単一アイテムの注文 ID は、他の単一アイテムの注文 ID でチェックされます

 Existing Order : ORD111
 Attempt to Enter new order of : ORD111
 **Sorry OrderID already exists**

単一のアイテムの注文 ID は、複数のアイテムの注文 ID に対してチェックされます。

 Existing Order : ORD222
                  ORD222
                  ORD222
 Attempt to enter new order of : ORD222
 **Sorry OrderID already exists**

しかし、複数の商品注文IDを入力すると、

 Existing Order : ORD333
                  ORD333
                  ORD333
 Attempt to enter new order of ORD333
                               ORD333
                               ORD333
 **Order Successfully Entered**

ORDER IDをチェックするコードは次のとおりです

     private bool isOrderIDUnique()
 {
     string OrderID = txtOrderID.Text;
     string ItemAmount = txtItemAmount.Text;
     int items = Convert.ToInt32(ItemAmount);
     string select = getSelectString("COUNT(*)", strings.settings.AccessTable,  "ORDERID = '" + OrderID + "'");
     int count = CountOrderID(select);
     if (count == 0)
     {
         return true;
     }
     if (count >= 1 && items > 1)
     {
         return true;
     }
     else
     {
         return false;
     }

誰かがこれで私を助けることができれば、私はそれを大いに感謝します! IF ステートメントに欠けているのはどの部分ですか? グループとグループを比較するにはどうすればよいですか? ありがとう!!

4

1 に答える 1

3

テーブルの再設計をお勧めします。

OrdersTable
OrderID User
1       Joe

OrderID代理主キーの場所

OrderDetailsTable
OrderID Key ItemCode
1       XXX 1
1       XXX 2

次に、カウントの一致ではなく、注文の存在を確認するだけで済みます。あなた自身とユーザーの両方にとって必要以上に複雑にしているようです。

于 2013-03-22T19:09:52.340 に答える