#.net #linq #exception #datetime #format
#.net #linq #исключение #datetime #форматировать
Вопрос:
У меня есть таблица данных SQL, которая содержит поле ДАТЫ или DATETIME
здесь приведена инструкция LINQ, просто чтобы получить основную идею
var testLinq = from t in DBDataContext.Certificates select t;
foreach (var t in testLinq)
{
....
}
Для краткости опустил код в {..}.
НО всякий раз, когда ‘foreach’ пытается использовать t, я получаю это исключение
«Входная строка была в неправильном формате». При преобразовании строки в DateTime проанализируйте строку, чтобы получить дату, прежде чем вводить каждую переменную в объект DateTime
Как я могу это сделать, когда это обрабатывается Linq внутри цикла foreach?
Комментарии:
1. Я думаю, вам придется предоставить немного больше кода. Как вы ссылаетесь на свойство DateTime?
2. Спасибо, это исключение возникает, даже если вы даже не пытаетесь ссылаться на свойство. Похоже, что это происходит при сборке цикла foreach. Я пытался использовать поля SQL Date amp; DateTime и не забыл повторно просмотреть мой DataContext в Visual Studio…
Ответ №1:
Прежде всего, сделайте это следующим образом
var testLinq = (from t in DBDataContext.Certificates select t).ToList();
foreach (var t in testLinq)
{
....
}
и преобразуйте вашу строку в в datetime следующим образом
DateTime dt = DateTime.Parse("yourString")
если это не работает,
DateTime dt = new DateTime(year,month,day);
и получите ваши значения года, месяца, дня с помощью Convert.ToInt32(yourString.Подстрока (0,4)) и т. Д