OnlineUser ou = GetOnlineUser();
        if (ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString() == string.Empty & _ds.Tables[0].Rows.Count > 0)
        {
            string strZT;
            strZT = _ds.Tables[0].Rows[0][4].ToString() + _ds.Tables[0].Rows[0][7].ToString() + _ds.Tables[0].Rows[0][8].ToString();
            for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
            {
                strZT = strZT + "、" + _ds.Tables[0].Rows[i][4].ToString() + _ds.Tables[0].Rows[i][7].ToString() + _ds.Tables[0].Rows[i][8].ToString();
                if (i == 2 & _ds.Tables[0].Rows.Count>3)
                {
                    strZT = strZT + "...";
                    break;
                }
            }
            ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
            DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
            MailMessage.Instance.UpdateContent(ou.Guid);
        }        

解决方案 »

  1.   

    你那个条件表达式为什么只有一个 & 符号?
      

  2.   

    抛砖引玉了先OnlineUser ou = GetOnlineUser();
    if (ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString() == string.Empty &
    _ds.Tables[0].Rows.Count > 0)
    {
    StringBuilder strZT = new StringBuilder(_ds.Tables[0].Rows[0][4].ToString() + 
    _ds.Tables[0].Rows[0][7].ToString() + 
    _ds.Tables[0].Rows[0][8].ToString());

    for (int count = 1; count < _ds.Tables[0].Rows.Count; count++)
    {
    strZT.Append("、" + _ds.Tables[0].Rows[count][4].ToString() + 
    _ds.Tables[0].Rows[count][7].ToString() + 
    _ds.Tables[0].Rows[count][8].ToString());

    if (count == 2 & _ds.Tables[0].Rows.Count>3)
    {
    strZT.Append("...");
    break;
    }
    }

    ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT.ToString();
    DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
    MailMessage.Instance.UpdateContent(ou.Guid);
    }    
    另外替换掉那些魔术数字
    _ds.Tables[0].Rows[0][7].ToString() + 
    _ds.Tables[0].Rows[0][8].ToString());
    7和8这些都是代表什么意思的?替换为静态不可变的 int,让维护的人员明白是什么意思.
    清楚,干净的代码是最好的.
      

  3.   

    public void UpdataZT()
        {
            OnlineUser ou = GetOnlineUser();
            string strDelailZT = ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString();
            if (strDelailZT == string.Empty & _ds.Tables[0].Rows.Count > 0)
            {
                string strZT;
                DataRow dr = _ds.Tables[0].Rows[0];
                strZT = dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
                for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
                {
                    dr = _ds.Tables[0].Rows[i];
                    strZT = strZT + "、" + dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
                    if (i == 2 & _ds.Tables[0].Rows.Count > 3)
                    {
                        strZT = strZT + "...";
                        break;
                    }
                }
                ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
                DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
                MailMessage.Instance.UpdateContent(ou.Guid);
            }
        }
      

  4.   

    OnlineUser ou = GetOnlineUser();
      string strDelailZT = ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"].ToString();
      if (strDelailZT == string.Empty & _ds.Tables[0].Rows.Count > 0)
      {
      string strZT;
      DataRow dr = _ds.Tables[0].Rows[0];
      strZT = dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
      for (int i = 1; i < _ds.Tables[0].Rows.Count; i++)
      {
      dr = _ds.Tables[0].Rows[i];
      strZT = strZT + "、" + dr["MC"].ToString() + dr["SL"].ToString() + dr["DW"].ToString();
      if (i == 2 & _ds.Tables[0].Rows.Count > 3)
      {
      strZT = strZT + "...";
      break;
      }
      }
      ou.CaseDataDelail.ds.Tables[0].Rows[0]["ZT"] = strZT;
      DBService.Instance.UpdateDataset(ou.CaseDataDelail.SelectCommand, ou.CaseDataDelail.ds);
      MailMessage.Instance.UpdateContent(ou.Guid);
      }
      

  5.   

    建议使用StringBuilder代替string的加号(+)链接,无论是从性能上还是代码的整洁性上考虑