PDA

View Full Version : سوال: جستجوی تاریخ های ذخیره قبل از تاریخ درخواستی . Linq



hamid_0341
دوشنبه 04 شهریور 1392, 07:42 صبح
باسلام
برای جست و جوی قبل از تاریخ درخواستی از چه کدی استفاده کنم ؟؟؟ توی LInq . مثال : امروز "1392/6/6 "هستش من میخوام تاریخ های قبل از امروز بیاره مثلا اگه توی دیتابیس بود
1392/6/4 و 1392/6/7 و1392/6/3

اینجا هم نوشتم ولی جوابی نگرفتم

http://barnamenevis.org/showthread.php?406294-%D8%B1%D9%81%D8%B9-%D9%85%D8%B4%DA%A9%D9%84-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%87%D9%85%DB%8C%D8%B4%D9%87

اینم کد SQL این کاری که میخوام بکنم
SELECT * FROM TBL_Name Where FildeDateName < 'date'

sh.eng
سه شنبه 05 شهریور 1392, 11:24 صبح
سلام. فرض میکنم از EF نیز استفاده میکنید.



using (Entities myEF = new Entities())
{
var lst = (from n in myEF.TBL_Names
where n.FildeDateName < date
select n).ToList();
}

hamid_0341
سه شنبه 05 شهریور 1392, 11:35 صبح
هر دو تا تاریخم از نوع String هستن

sh.eng
سه شنبه 05 شهریور 1392, 11:48 صبح
هر دو تا تاریخم از نوع String هستن

شدیدا تاکید میکنم برای ذخیره تاریخ از datetime استفاده کنید. نمیدانم چرا بعضی ها از نوع string استفاده میکنند! دلیل خاصی دارید؟
ببینید دوست عزیز شما خیلی وقتا نیاز دارید که بر اساس زمان مرتب سازی کنید و یا حتی اینکس گذاری و... حالا اگر رشته باشه این کار به سختی انجام میشه

hamid_0341
سه شنبه 05 شهریور 1392, 12:44 عصر
شدیدا تاکید میکنم برای ذخیره تاریخ از datetime استفاده کنید. نمیدانم چرا بعضی ها از نوع string استفاده میکنند! دلیل خاصی دارید؟
ببینید دوست عزیز شما خیلی وقتا نیاز دارید که بر اساس زمان مرتب سازی کنید و یا حتی اینکس گذاری و... حالا اگر رشته باشه این کار به سختی انجام میشه
چون یک قسمت از برنامه میخواستم از تاریخ تا تاریخ داشته باشم و یکی از دوستان گفتن باید از نوع استرینگ باشه
Convert هم کردم ولی جواب نداد روشی برای استرینگ نیست؟

sh.eng
سه شنبه 05 شهریور 1392, 12:51 عصر
یعنی چی از تاریخ تا تاریخ داشته باشید؟ یه بازه خاص را میخواید فراخوانی کنید؟
در تمام حالات من تاکید میکنم از نوع datetime استفاده کرده و از تبدیل تاریخ شمسی به میلادی و برعکس استفاده کنید.
اگر واقعا میخواهید دیتابیس و برنامتون اصولی باشه از این روش استفاده کنید. چون بعدا به مشکل بر میخورید.

hamid_0341
سه شنبه 05 شهریور 1392, 14:36 عصر
کسی نظری نداره؟

sh.eng
سه شنبه 05 شهریور 1392, 15:28 عصر
کسی نظری نداره؟
ببینید دوست من، من خواستم روش اصولی را بتون بگم. جستجو کنید مطمئن میشوید که اصولیش این است که از نوع تاریخ باشه. به هر حال اگر هنوز قصد دارید که از روش خودتون استفاده کنید می توانید یک تابع بنویسید که رشته تاریخ شما را به تاریخ تبدیل کنه. سپس از آن در کد داده شده استفاده کنید. اگر متوجه نشدید بگید تا براتون مثالی بزنم.

ولی باز هم میگم، اگر میخواید در آینده به مشکل بر نخورید تاریخ را بصورت تاریخ ذخیره کنید. برخی از مشکلات آینده:
عدم ایندکس گذاری درست در sql
عدم مرتب سازی درست و افت سرعت
عدم ایجاد آرشیو بصورت اصولی
عدم استفاده اصولی در مقایسات و...
و مشکلات دیگه...

به هر حال انتخاب با شماست

khokhan
سه شنبه 05 شهریور 1392, 15:34 عصر
کسی نظری نداره؟
سلام
با توجه به گفته های شما توی این نمونه یه تکست باکس گذاشتم و تاریخهای کوچکتر از نوشته تکست باکس توی گرید لیست می شه
نوع فیلد تاریخ توی بانک هم date هست