+2 امتیاز
سلام

دوستان چظوری میشه بین دو تاریخ که به صورت رشته استرینگ ذخیره شده جستجو انجام بدیم

تاریخ به صورت میلادی و به صورت زیر هست

2015/آگوست/07

ذخیره میشه

دوستان راهنایی کنن
برای این مدل 2015/08/28 راه حلی ندارین؟
توسط (2,130 امتیاز) 7 26 143
سلام و باتشکر

ماه رو من به صورت عددی ذخیره کردم . و نیازی به تبدیل نیست.
توسط (276 امتیاز) 14 37

1 پاسخ

+3 امتیاز

سلام به همه ...

بهترین روش (بنا به گفته خود مایکروسافت) واسه ذخیره تاریخ ، به میلادی است ! چون راحت میتونید محاسبات مث جستجو ، اختلاف تاریخ و ... رو بدست بیارید 

و سپس جهت نمایش باید تبدیل کنید به شمسی (با یه تابع یا کلاس)

این تابع تاریخ میلادی رو به شمسی بر میگردونه :

private static string GetPersianDate(DateTime date) 
        {
            PersianCalendar persianCalendar = new PersianCalendar();
            int year = persianCalendar.GetYear(date);
            int month = persianCalendar.GetMonth(date);
            int day = persianCalendar.GetDayOfMonth(date);
            return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
        }

و برای نمایش تاریخ شمسی توی دیتاگریدویو از این cellformating تاریخ رو تبدیل میکنید :

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.ColumnIndex == 8)
            {
                object value = e.Value;
                if (value is DateTime)
                {
                    e.Value = GetPersianDate((DateTime)e.Value);
                    e.FormattingApplied = true;
                }
            }
        }

تو اینجا ستون 8 فیلد تاریخ رو نمایش میده (که به شمسی تبدیل شده)

و برای جستجو بین دو تاریخ کافی دو تا تاریخ رو وارد کنید و (بصورت پارامتر) به کوئری پاس بدین :)

یا علی !

این کامپوننت هم خیلی خوبه : DateTimeSelector.dll

دوست عزیز بهترین راهش اینه که از رشته ای استفاده بکنین
و برای سرچ هم از عبارت between استفاده کنید
توسط (141 امتیاز) 2 10
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...