2

我对 c# 有点陌生,我在试图围绕我试图实现的这个 if-then 语句时遇到了一些麻烦。

这是我的目标:当用户在系统中输入订单时,会为每个订单创建一个唯一的 orderID。然而,一些额外的功能是用户可以选择项目的数量,然后使用相同的 orderID 为每个项目创建一个新行。每个项目都有一个唯一的密钥。这给你这个:

 ORDERID     KEY     ItemCode

 ORD123      758        2
 ORD123      584        2
 ORD123      582        2

我遇到的问题是 ORDER 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**

这是我检查订单 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 回答