字符串未被识别为有效的DateTime。 3

时间:2014-03-18 16:10:47

标签: c#-4.0

字符串未被识别为有效的DateTime。

从字符串转换到日期生成的错误 从字符串转换到日期生成的错误 从字符串转换到日期生成的错误 从字符串转换到日期生成的错误

 sql = "select * from PROGRAMME_PREVISIONNEL where id_organisation= " + id_org + " and      
      ID_SYSTEME_HYDRAULIQUE= " + id_sys + " order by DATE_PROGRAMME";
        IList<object[]> progremmePrevionnelOrdered = 
    session.CreateSQLQuery(sql).List<object[]>();

        int pageIndex = Convert.ToInt32(page) - 1;
        int pageSize = rows;
        int totalRecords = progremmePrevionnelOrdered.Count;
        int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

        string syid = null;
        string date = null;

        var jsonData = new
        {
            total = totalPages,
            page = page,
            records = totalRecords,
            rows =
            (from prog in progremmePrevionnelOrdered

             select new
             {
                 cell = new string[] {
                     prog[1].ToString(),

                     syid = prog[6].ToString(),
                     date = DateTime.ParseExact(prog[4].ToString().Substring(10),  
                   "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString()


                 }
             }).ToArray()

1 个答案:

答案 0 :(得分:0)

我假设你想要前十个字符而不是从第10个字符开始的子字符串。

然后你必须使用

prog[4].ToString().Substring(0, 10)

而不是

prog[4].ToString().Substring(10)

这里

date = DateTime.ParseExact(prog[4].ToString().Substring(0, 10),  
               "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString()

除此之外

  • 为什么要将解析后的DateTime转换回字符串?
  • 我强烈建议使用sql-parameters来避免sql注入。