مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

مشکل در گزارش گیری از دیتابیس

  • دوشنبه 10 آبان 1395
  • 18:04
تشکر میکنم

سلام

یه سری جدول تو دیتابیس دارم که اطلاعات تاریخ بصورت رشته ذخیره میکنه!

فرمت رشته بصورت زیر:

"1395/08/10"

حالا میخام همه رکوردایی که بزرگتر از تاریخ بالاست نشون بده!

خطای اولی که بهش برخوردم این بود که چون رشته ذخیره شده نمیتونم بزرگتر یا کوچکتر استفاده کنم!

دنبال تبدیل کردن رشته افتادم! با استفاده ازConvert.ToDateTime رشته رو به DateTime تبدیل کردم ظاهرا تبدیلها درست انجام شده ولی پیام خطا داشتم!

بعد یه ViewModel ساختم و تو اون دیتای مورد نظر رو DateTime در نظر گرفتم و اطلاعاتو بصورت زیر داخل ویومدلم ذخیره کردم:

 var psm = new ViewModel.VacTimeSearchVM();
                 var q = from Vac in db.VacTimes
                    join Org in db.TblOrganizations
                        on Vac.OrganizationID equals Org.OrgID
                    join vaz in db.Vaziats
                        on Vac.Vaziat equals vaz.VaziatID
                    join noe in db.MorakhasiType1
                        on Vac.VacType equals noe.MTypeID
                    join taeid in db.Taeidkonandehs
                        on Vac.TaeidKonandeh equals taeid.PersonID
                    orderby Vac.VTimeID descending
                         select new ViewModel.VacTimeSearchVM
                    {
                        VTimeID = Vac.VTimeID,
                        DarkhastDate = Vac.DarkhastDate,
                        PersonID = Vac.PersonID,
                        PersonName = Vac.PersonName,
                        PersonFamily = Vac.PersonFamily,
                        OrgName = Org.OrgName,
                        TaeidKonandeh = taeid.PersonID,
                        VacTypeName = noe.MorTypeName,
                        MorakhasiDate = Convert.ToDateTime(Vac.MorakhasiDate),
                        TimeStart = Vac.TimeStart,
                        TimeEnd = Vac.TimeEnd,
                        TimeTotalString = Vac.TimeTotalString,
                        TimeTotalInt = Vac.TimeTotalInt,
                        Vaziat = vaz.VaziatName,
                        Description = Vac.Description,
                        VaziatID = vaz.VaziatID
                    };
                 var DateS = Convert.ToDateTime(DateStart);
                 var DateE = Convert.ToDateTime(DateEnd);

تاریخ شروع و پایان هم چون رشته بودن به DateTime تبدیل کردم و تو متغیر DateS و DateE ذخیره کردم.

بعد خط زیر رو نوشتم! ولی باز جواب نمیده و خطا دارم

q = q.Where(x => x.PersonID == ReqPersonID && x.MorakhasiDate >= DateS);

پیام خطایی که نشون میده:

باز هم مثل همیشه منتظر راهنمایی خوب شما هستم تا مشکلم برطرف بشه.

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 11 آبان 1395
  • 09:35

ذخیره کردن تاریخ به صورت رشته کار استباهی است

باید به صورت DateTime ذخیره کنید تا بتونید کوئری بزنید

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • سه شنبه 11 آبان 1395
  • 10:48

سلام

دلیل اینکار استفاده از PersianDatePicker بود!

مرسی از راهنماییتون

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 11 آبان 1395
  • 10:56

مشکلی من نمیبینم

موقع ذخیره میلادی کنید و ذخیره کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)