string 编号 = gvBookReturn.DataKeys[e.NewSelectedIndex].Value.ToString();
DateTime returnDate = Convert.ToDateTime(gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text);
DateTime todayDate = DateTime.Now.Date;
TimeSpan ts = todayDate - returnDate;
int daysDate = ts.Days;
该字符串未被识别为有效的 DateTime。有一个从索引 2 处开始的未知字。源错误: 
行 77:         //获取当前选择图书编号
行 78:         string 编号 = gvBookReturn.DataKeys[e.NewSelectedIndex].Value.ToString();
行 79:         DateTime returnDate = Convert.ToDateTime(gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text);
行 80:         DateTime todayDate = DateTime.Now.Date;
行 81:         TimeSpan ts = todayDate - returnDate;
错误行79行。我想从SQL数据库的一个表里读取一个日期类型的数据给returnDate,再读取电脑现在的时间给todayDate,然后两个时间相减,相减后取天数给daysDate。
 

解决方案 »

  1.   

    gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text的内容不符合日期/时间格式检测一下gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text的值是什么
      

  2.   

    断点调试
    看看gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text 为多少
    应该是这个不是日期格式
      

  3.   

    单步跟踪查看值
    DateTime.TryParse
    DateTime.ParseExact
      

  4.   

    DateTime returnDate = DateTime.TryParse(gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text);再断点试
      

  5.   

    楼主, 把测试看到的gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text 值说下...
      

  6.   

    我也觉得是你gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text这句出了问题,不能转换为时间格式!
      

  7.   

    你把你gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text变成你gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].value.toString("yyyy-MM-dd")
    看行不
      

  8.   


    这样肯定不行的...LZ 人呢?解决了?估计得用DateTime.ParseExact
      

  9.   

    gvBookReturn.Rows[e.NewSelectedIndex].Cells[4].Text 不能转化为日期格式