private string timejia(string name, DataTable tt)
    {
        TimeSpan tms = new TimeSpan();
        for (int i = 1; i < tt.Rows.Count;i++)
        {
            if (tt.Rows[i][0].ToString() == name)
            {
                DateTime time = Convert.ToDateTime(tt.Rows[i][12]);
                TimeSpan tmsall = new TimeSpan(time.Hour, time.Minute, time.Second);
                tms += tmsall;
            }
            int timeH = tms.Days * 24 + tms.Hours;
            double timeM = Convert.ToDouble(tms.Minutes / 60.0);
            string all = "" + timeH + "" + "." + "" + timeM + "" + "小时";
            return all;
        }
    }错误提示:错误 3 “insert.timejia(string, System.Data.DataTable)”: 并非所有的代码路径都返回值 E:\net\EXCEL\App_Code\insert.cs 62 20 E:\net\EXCEL\if 里面知识一直加!!
到下面才返回一个 值然后在别的地方接值。  可是不知道是怎么回事?????
  在线等。。赶进度呢!!

解决方案 »

  1.   

    all定义在for循环的外边,return all;也放在for循环外边
      

  2.   

    如果for循环不满足则没有返回值所以报错,应该把all的声明定义到for循环外,然后return也放到for循环外面
      

  3.   

    int timeH = tms.Days * 24 + tms.Hours;
                double timeM = Convert.ToDouble(tms.Minutes / 60.0);
                string all = "" + timeH + "" + "." + "" + timeM + "" + "小时";
                return all;
    这些应该放在for外面吧
      

  4.   

    如果你的count=0那你返回值还有吗?
    返回 放到最下面去
      

  5.   


    private string timejia(string name, DataTable tt)
        {
            TimeSpan tms = new TimeSpan();
            string all = "" 
            for (int i = 1; i < tt.Rows.Count;i++)
            {
                if (tt.Rows[i][0].ToString() == name)
                {
                    DateTime time = Convert.ToDateTime(tt.Rows[i][12]);
                    TimeSpan tmsall = new TimeSpan(time.Hour, time.Minute, time.Second);
                    tms += tmsall;
                }
                int timeH = tms.Days * 24 + tms.Hours;
                double timeM = Convert.ToDouble(tms.Minutes / 60.0);
                all = "" + timeH + "" + "." + "" + timeM + "" + "小时";
                
            }
            return all;
        }
      

  6.   

    all的定义放在最前。
    all的return放在最后,也就是 “}”前。
      

  7.   


    为空的不考虑~~ 不可能为空的~~~应该是下面这样的
    ····     private string timejia(string name, DataTable tt)
        {
            TimeSpan tms = new TimeSpan();
            for (int i = 1; i < tt.Rows.Count; i++)
            {
                if (tt.Rows[i][0].ToString() == name)
                {
                    DateTime time = Convert.ToDateTime(tt.Rows[i][12]);
                    TimeSpan tmsall = new TimeSpan(time.Hour, time.Minute, time.Second);
                    tms += tmsall;
                }
            }
            int timeH = tms.Days * 24 + tms.Hours;
            double timeM = Convert.ToDouble(tms.Minutes / 60.0);
            string all = "" + timeH + "" + "." + "" + timeM.ToString().Substring(2) + "" + "小时";
            return all;
        }