2012-04-05 8 views
0

У меня есть приложение asp.net, и я использую Entity Framework для подключения к базе данных. в этом приложении у меня есть текстовое поле для получения даты (я использую здесь стиль календаря css) и его тип строки.преобразовать строки в datetime

У меня есть столбец в моей базе данных и его в Date формате времени, мне нужно сравнить значение текстового поля с колонкой дат в моей базе данных, для этого я использовал код, как

public StudentAttendances(string date) 
    { 
     if (date != "") 
     { 
      DateTime date1 = Convert.ToDateTime(date); 

      foreach (DataAccess.StudentAttendance studentAttendance in buDataEntities.StudentAttendances.Where(s => s.Date == date1)) 
      { 
       this.Add(new StudentAttendance(studentAttendance.StudentId)); 
      } 
     } 
    } 

, например, если я выбираю дату в своем текстовом поле (формат 04/05/2012), и когда я сравниваю это с базой данных, она не показывает никаких данных, но на самом деле некоторые данные есть для этой даты.

+2

Какую базу данных и что программирующий язык вы используете? – Sibster

+0

Очень неясный вопрос. Где вы получаете дату с сервера базы данных и какую переменную вы ее сохраняете? Как выглядит линия, на которой вы сравниваете даты? Можете ли вы показать нам еще один код? – mortb

+0

Я изменил вопрос, любезно проверил его и уточнил мои сомнения – shanish

ответ

1

Ваш код сравнения как день и время (часы, минуты и т.д. должны соответствовать). Попытайтесь сравнить только день часть, как это:

buDataEntities.StudentAttendances.Where(s => s.Date.Subtract(date1).Days == 0) 

Я также думаю, что вы должны указать, какой формат даты ввода от пользователей в 04/05/2012 может означать как 4-го апреля или 5 мая в зависимости. на региональных компьютерах. Вот пример (ниже) для преобразования строки даты в американском формате объект DateTime:

DateTime date1 = DateTime.Parse(date, new CultureInfo("en-US")); 

Надежда, что помогает!

+0

Большое вам спасибо за ур ответ mortb, я получил решение ... – shanish

+0

пожалуйста, отметьте решение, принятое, если оно работает для вас :) – mortb

1

Пожалуйста, проверьте следующие работы для вас:

public StudentAttendances(string date) 
{ 
    if (date != "") 
    { 
     // please see the change from your given code 
     DateTime date1 = DateTime.ParseExact(date, "MM/dd/yyyy", 
            System.Globalization.CultureInfo.InvariantCulture); 

     foreach (DataAccess.StudentAttendance studentAttendance in buDataEntities.StudentAttendances.Where(s => s.Date == date1)) 
     { 
      this.Add(new StudentAttendance(studentAttendance.StudentId)); 
     } 
    } 
} 
+0

Большое вам спасибо за ответ ур sarwar026, я получил решение ... – shanish

+0

Добро пожаловать @Shanish :) – sarwar026

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