2013-02-25 13 views
0

这是我的问题:我想创建一个程序来检查ATM中的错误,并将其与我的数据库中保存的数据进行比较,以获得每个机器的错误状态的SMS(已解决,未解决,新)。该程序完成,它工作得很好,但坠毁,恢复条件后CompareErrs - 方法停止工作。现在它假设它返回解决的错误相同的新。下面是函数: - 请与条件帮助:S我如何构建完美的条件

private object[] CompareErrs(string MachineErr, string DBErr)   
    { 
     #region CompareErrs 
     object[] ToReturn = new object[2]; 

     string Errs_Solved = ""; 
     string Errs_UnSolved = ""; 
     string Errs_New = ""; 

     string[] MachineErrSplit = MachineErr.Split(' '); 
     for (int i = 0; i < MachineErrSplit.Length; i++) 
     { 
      string Seperator = " "; 
      //if (i == MachineErrSplit.Length - 1) 
      // Seperator = ""; 

      if (DBErr.Contains(MachineErrSplit[i])) 
      { 
       Errs_UnSolved += MachineErrSplit[i] + Seperator; 
      } 
      else //if (MachineErrSplit[i].Contains(DBErr)) 
      { 
       Errs_Solved += MachineErrSplit[i] + Seperator; 
      } 

      if (!DBErr.Contains(MachineErrSplit[i])) 
      { 
       Errs_New += MachineErrSplit[i] + Seperator; 
      } 
     } 

     ToReturn[0] = new string[3] { Errs_Solved, Errs_UnSolved, Errs_New }; 
     ToReturn[1] = MachineErr; 
     return ToReturn; 

     #endregion 
    } 
+0

什么是预期的输出? – Aditi 2013-02-25 08:51:55

+0

由于崩溃,你的意思是,它抛出一个异常?你能提供一些细节吗?而且,如果'DBErr'只包含“未解决的”错误,你是否也应该有一个“已解决”的错误列表?另外,将错误列表存储在单个字符串中是一个非常糟糕的主意。 – Groo 2013-02-25 08:52:33

+0

否不是一个例外,但正如你在你的评论中所说的那样,Solved和新错误都是相同的,我现在需要的是获得正确的条件 – 2013-02-25 08:57:20

回答

1
else //if (MachineErrSplit[i].Contains(DBErr)) 
{ 
    Errs_Solved += MachineErrSplit[i] + Seperator; 
} 

if (!DBErr.Contains(MachineErrSplit[i])) 
{ 
    Errs_New += MachineErrSplit[i] + Seperator; 
} 

这两个是相同的......分配相同的价值,不同的变量。

因为,中

if (DBErr.Contains(MachineErrSplit[i])) 

其他条件相同

if (!DBErr.Contains(MachineErrSplit[i]))