2014-01-24 4 views
0

У меня есть метод, который есть два DateTime и Int в качестве параметра, например:Преобразование DateTime в строку перед отправкой в ​​базу данных

public <list>MethodName(DateTime a, DateTime b, int c) 

если пользователь выбирает самую дату, то данные должны быть загружены из базы данных на основе только в эту дату, если пользователь выбирает две даты, тогда данные должны быть загружены с даты a на дату b. Для этого мне нужно сначала проверить, имеет ли значение в моем поле даты значение null или нет. Для этого я сделал:

DateTime d = new DateTime(); 
DateTime dd = new DateTime(); 
int i = new int(); 

теперь будет проверять, если мое значение равно нулю, для этого я использовал, если цикл:

if(!string.IsNullOrEmpty(a)) { 
d=Convert.ToDateTime(a).ToLongDateString() 
} same for the parameter b and c... 

После зная его нуль или не нуль я может попытаться извлечение данных из базы данных, но я получаю сообщение об ошибке: Строка не была признана действительной DateTime.

Я использую календарь загрузки, поэтому в моем поле ввода я получаю dd/mm/yyyy, используя значение из этого текстового поля. Я пытаюсь загрузить данные.

+2

Try 'DateTime.ParseExact (а, "дд/мм/гггг", CultureInfo.InvariantCulture);' –

+0

я получаю ошибки Ошибки \t \t 3 Лучших перегруженный метод подходит для «System.DateTime.ParseExact (строка, строки, System.IFormatProvider, System.Globalization.DateTimeStyles) имеет несколько недопустимых аргументов. Что делать, если я конвертирую свой возвращаемый тип из DateTime в строку? но как я могу обновить этот код от DateTime до строки? –

+0

Я все время так делаю, но передаю все это в хранимые процедуры SQL. SQL с трудом переносит строку, которую вы отправляете, поэтому отправьте ее как datetime – wruckie

ответ

0

Если это дата отправки SQL-сервера в виде строки, отформатированной в yyyy-MM-dd.

+1

Он должен быть передан как параметр datetime, а не как строка. –

+0

Я понимаю, что тип данных этого параметра является DateTime в SQL-сервисе, но мы можем передать его, как я предложил из front-end, и он будет работать нормально. – Suresh

Смежные вопросы