Строка не была распознана как допустимая дата-время. Только клиентская машина
Hi, I'm getting Exception on this only Client Machine, While build and Execute in local machine didn't get any Exception. Please go through let me know... <pre>DateTime LastRunAt = new DateTime(2000,08,15); // string query = "SELECT golden_id FROM `golden_details` WHERE `golden_name` = '" + goldenName + "'"; MySQLDataBaseHelper.Result gId = db.ExecuteNonQuery(query); if (gId.ResultSet.Rows.Count > 0) { query = "SELECT `datetime` FROM `" + gId.ResultSet.Rows[0]["golden_id"] + "_golden_audit_trail_details` WHERE `id` = (SELECT Max(id) FROM `" + gId.ResultSet.Rows[0]["golden_id"] + "_golden_audit_trail_details`)"; MySQLDataBaseHelper.Result gUDt = db.ExecuteNonQuery(query); IFormatProvider provider = new CultureInfo("en-US", true); if (gUDt.ResultSet.Rows.Count > 0) //LastRunAt =Convert.ToDateTime(gUDt.ResultSet.Rows[0]["datetime"].ToString()); LastRunAt = DateTime.Parse(gUDt.ResultSet.Rows[0]["datetime"].ToString(),provider,DateTimeStyles.AdjustToUniversal); } // if (r.Success && r.NumberOfRecords > 0) { string lastRunDatePath = Path.Combine(Application.StartupPath, "LastRunAt"); List<string> jobIDs = r.ResultSet.AsEnumerable().Select(p => "" + p.Field<int>("job_id")).ToList(); foreach (string jID in jobIDs) { MySQLDataBaseHelper.Result rID = db.ExecuteNonQuery("SELECT `last_run_at` FROM `job_details` WHERE `job_id` = "+jID); IFormatProvider provider1 = new CultureInfo("en-US", true); //DateTime time = Convert.ToDateTime(rID.ResultSet.Rows[0]["last_run_at"].ToString()); DateTime time = DateTime.Parse(rID.ResultSet.Rows[0]["last_run_at"].ToString(), provider1, DateTimeStyles.NoCurrentDateDefault); if (LastRunAt.CompareTo(time) < 0) LastRunAt = time; } Directory.CreateDirectory(lastRunDatePath); } return LastRunAt;
Что я уже пробовал:
I'm getting Exception on this only Client Machine, While build and Execute in local machine didn't get any Exception. Please go through let me know...
F-ES Sitecore
Вы не думаете, что линия, на которой происходит ошибка, имеет какое-либо отношение к решению проблемы?
Вы будете делать предположения о форматах дат, основанных на ваших настройках, но разные люди имеют разные настройки. Если вы попросите код преобразовать "1/1/2000" в дату, он будет работать на вашем компьютере, где это ваша настройка формата даты, но если я нахожусь в Японии и моя настройка 2000-1-1, то он не будет работать, так как компьютер не знает, что означает "1/1/2000".
chellapandi160
Строка не была распознана как допустимая дата-время. в системе.значение datetime.Parse(String s, DateTimeFormatInfo dtfi,стили DateTimeStyles)
Этот Exeception я получаю все остальные ПК. Кроме моего компьютера..
F-ES Sitecore
Если "datetime" и "last_run_at" являются полями даты в базе данных, то не используйте ToString, а используйте универсальный метод
https://stackoverflow.com/questions/1106204/retrieving-a-datetime-value-from-a-datarow-c
Если эти значения хранятся в виде строк, то вам нужно знать формат, в котором они хранятся, и использовать DateTime.TryParseExact, а не Parse.
Richard MacCutchan
Почему вы преобразуете значение DateTime в строку, просто чтобы вы могли разобрать его обратно в DateTime?