PDA

View Full Version : سوال: جست و جو بین دو تاریخ شمسی در linq



ms-ninja
پنج شنبه 15 بهمن 1394, 18:13 عصر
با سلام

من می خوام بین 2 تاریخ شمسی در دیتابیس به روش لینکو سرچ کنم

ولی هر چی سعی کردم نشد . از کامپوننت Bpersian استفاده می کنم

من چندین روش تست کردم ولی جوابی به دست نیاوردم

از دوستان اگر کسی این کار انجام داده یک کد یا سمپلی قرار بده


با تشکر از دوستان

parvizwpf
پنج شنبه 15 بهمن 1394, 18:24 عصر
تاریخ شمسی شماقطعا از نوع استرینگ شده ورویاسترینگ نمیشه مقایسه انجام داد. شما بهتره برای مقایسه ها یک فیلد میلادی ذخیره کنید و مقایسه رو با اون انجام بدید و شمسی رو فقط برای نمایش استفاده کنید

ms-ninja
پنج شنبه 15 بهمن 1394, 18:44 عصر
من از کامپوننت bpersian استفاده می کنم

شما چنین کامپوننتی سراغ دارید

dashti011
پنج شنبه 15 بهمن 1394, 21:20 عصر
توی دیتابیس تاریخ رو به صورت شمسی ذخیره کردین ( از نوع استرینگ) ؟ یا به صورت میلادی و از نوع DateTime ?

hadimtn
پنج شنبه 15 بهمن 1394, 23:04 عصر
توی دیتابیس تاریخ رو به صورت شمسی ذخیره کردین ( از نوع استرینگ) ؟ یا به صورت میلادی و از نوع DateTime ?
سلام دوستان منم این سوال رو دارم؛
من تاریخ رو به صورت میلادی با نوع DateTime ذخیره کردم و میخوام بین 2 تاریخ انتخاب شده جستجو رو انجام بدم، به شکل زیر اقدام کردم ولی جواب نگرفتم؛

ForoshaLINQDataContext dbD = new ForoshaLINQDataContext(); DateTime AsDate, ToDate;
AsDate = As_DateTimePickerX.SelectedDateInDateTime;
ToDate = To_DateTimePickerX.SelectedDateInDateTime;


var TwoDateQuery = (from f in dbD.SaledTables
where f.RegDate > AsDate && f.RegDate < ToDate
select new
{
f.Object,
f.Brand,
f.Number
});

ms-ninja
پنج شنبه 15 بهمن 1394, 23:11 عصر
من به صورت شمسی ذخیره کردم

ژیار رحیمی
جمعه 16 بهمن 1394, 07:13 صبح
سلام با دو نوع ذخیره سازی تاریخ بصورت شمسی و هم میلادی در LINQ قابل پیاده سازیست فقط در حالت تاریخ شمسی باید فرمت بصورت(yyyy/mm/dd) باشد

کویری در حالت شمسی(فیلد Date از نوع String در DataBase به فرمت("yyyy/mm/dd") و بصورت تاریخ شمسی ذخیره شده باشد.

lst.Where(c => c.Date.CompareTo(DateFrom.Date) >= 0 && c.Date.CompareTo(DateTo.Date) <= 0).ToList();


و در حالت میلادی (فیلد Date از نوع DateTime در DataBase ذخیره شده باشد.

lst.Where(c => c.Date.Date.CompareTo(DateFrom.Date) >= 0 && c.Date.Date.CompareTo(DateTo.Date) <= 0).ToList();

ms-ninja
شنبه 17 بهمن 1394, 12:06 عصر
لطفا یک نمونه سمپل قرار بدید

این برنامه من : http://uploadboy.me/9gt4k3kadxob/WindowsFormsApplication1.zip

vb341
شنبه 17 بهمن 1394, 19:56 عصر
چرا به صورت string ذخیره نمیکنید ؟
من در پروژه هام تاریخ رو بصورت String ذخیره میکنم و در جستجوها هم بدون هیچ مشکلی جواب میده .

ژیار رحیمی
یک شنبه 18 بهمن 1394, 09:09 صبح
لطفا یک نمونه سمپل قرار بدید

این برنامه من : http://uploadboy.me/9gt4k3kadxob/WindowsFormsApplication1.zip

دوست گرامی پراپرتی b2.NowDateSelected از کنترل BPersianCalender مقدار True یا False رو برمیگردونه.شما کدهاتونو به صورت زیر اصلاح کنید .چون من با کنترل BPersianCalender کار نکردم دقیق نمیدونم کدام پراپرتی از این کنترل تاریخ شمسی رو بصورت String برمیگردانه شما با دو خط کد زیر تست بزنید ببینید کدومش به جواب میرسه

با استفاده از پراپرتی SelectedDate

var shr = db.db_bimar.Where(c => c.birth.CompareTo(b1.SelectedDate) >= 0 && c.birth.CompareTo(b2.SelectedDate) <= 0).ToList();


با استفاده از پراپرتی Shamsi

var shr = db.db_bimar.Where(c => c.birth.CompareTo(b1.Shamsi) >= 0 && c.birth.CompareTo(b2.Shamsi) <= 0).ToList();

ms-ninja
یک شنبه 18 بهمن 1394, 16:11 عصر
با تشکر فراوان از شما آقای
ژیار رحیمی (http://barnamenevis.org/member.php?48557-%DA%98%DB%8C%D8%A7%D8%B1-%D8%B1%D8%AD%DB%8C%D9%85%DB%8C)

http://barnamenevis.org/images/statusicon/user-offline.png مشکل رفع شد:بوس:

فقط یک سوال : شما از کجا فهمدید که متد shamsi باید ستفاده کرد . لطفا کمی برای من در مورد این گونه سرچ توضیح دهید:قلب::قلب::قلب: