سلام
میخوام از database تاریخ میلادی رو بگیرم و در دیتاگرید اونو به تاریخ شمسی تبدیل کنم.
لطفا راهنمایی کنید.
از PersianCalendar استفاده کنید
System.Globalization.PersianCalendar x = new System.Globalization.PersianCalendar(); DateTime dt = x.ToDateTime(1390, 4, 21, 0, 0, 0, 0, 0);
استاد این کد رو ببینید
PersianCalendar pc = new PersianCalendar(); var person = (from p in db.Users where p.RoleID == 2 && p.IsActive == true orderby p.Family select new { نام = p.Name, نام_خانوادگی = p.Family, کدملی = p.Kode, موبایل = p.Mobile, تلفن = p.Mobile, شهر = p.City, آدرس = p.Address, تاریخ_ثبت_نام = pc.GetYear(p.RegesterDate)+ " / " + pc.GetMonth(p.RegesterDate) + " / " + pc.GetDayOfMonth(p.RegesterDate) }).Skip(pagenum * pagesize).Take(pagesize); dataUser.DataSource = person.ToList();
تو select از تابع نمیشه استفاده کرد
از ی روش دیگه استفاده کردم
یک کلاس ساختم اطلاعات رو ریختم تو اون کلاس و تاریخ رو همونجا تبدیل کردم ولی مشکلی ک داشت برنامه وقتی اجرا میشد همون موقع اطلاعات رو میریخت تو کلاس و اگر ی نفر دیگه رو ثبت نام میکردم اونو تو گرید نمایش نمیداد ینعی به کلاسی ک ساخته بودم اضافه نمیکرد باید برنامه رو یکبار دیگه اجرا میکردم تا اونو هم اضافه کنه به کلاس.
اشتباهی که شما کردید تاریخ را شمسی ذخیره کردید و بعد دچار مشکلات زیادی خواهید شد
تاریخ را درست کنید و میلادی ذخیره کنید و موقع نمایش تبدیل به شمسی کنید
استاد تاریخ رو میلادی تو دیتابیس ذخیره کردم
کد بالا رو ک براتون فرستادم برای نمایش اطلاعات تو گریده ولی خط 15 ارور میده.
نمیتونید در بدنه کوئری Convert کنید
باید بیرون اینکار را انجام دهید
بله
منم مشکلم همینه چجوری بیرون بدنه convert کنم
تاریخ رو به صورت میلادی در کوئری بگیرید و بعد یک حلقه روی نتیجه بزنید و ویرایش کنید به شمسی
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)