遇到if-then语句逻辑问题

时间:2013-03-22 18:59:46

标签: c# if-statement

我对c#有些新意,我在尝试围绕这个if-then声明时遇到了一些麻烦。

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

 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声明中缺少哪一部分?如何针对群组检查群组?谢谢!

1 个答案:

答案 0 :(得分:3)

我建议重新设计一个表格:

OrdersTable
OrderID User
1       Joe

其中OrderID是代理主键

OrderDetailsTable
OrderID Key ItemCode
1       XXX 1
1       XXX 2

然后,您只需检查订单是否存在,而不是计数匹配。您似乎正在为自己和用户提供比它更复杂的功能。