View Full Version : نمایش تاریخ فارسی در datagridview
rezagala
سه شنبه 10 آذر 1388, 18:05 عصر
با سلام خدمت دوستان
من تاریخها را به شکل میلادی در دیتا بیسم ذخیره کردهام و حالا میخواهم به شکل تاریخ شمسی در ستون datagridview نمایش دهم چگونه میتوانم اینکار را انجام دهم
من در C# خیلی مبتدی هستم ولی اینکار راد ردلفی به راحتی انجام دادهام
ممنون از راهنمایتان
navidkhalilian
سه شنبه 10 آذر 1388, 19:16 عصر
دوست عزيز شما بايد داخل بانك خودتون دو تا فيلد بسازي يكي از نوع تاريخ و يكي از نوع رشته و هنگام ذخيره تاريخ ميلادي را درون فيلد تاريخ و شمسي را درون فيلد رشته اي بريزي.حالا هر وقط خواستي با تاريخ كار كني از ميلادي استفاده كن و هر موقع كه خواستي نمايش بدي از شمسي استفاده كن
hamidsolat
سه شنبه 10 آذر 1388, 20:08 عصر
من یه فایل dll نوشتم که تاریخ میلادی رو به شمسی تبدیل میکنه. باید داده های ستون تاریخ رو از دیتاگرید انتخاب کنی و با استفاده از کلاس این فایل به شمسی تبدیل کنی. این کار رو باید تا سطر آخر تکرار کنی.
ضمنا نام namespace با نام فایل یکی هست.
saeeedft
سه شنبه 10 آذر 1388, 21:53 عصر
اید داده های ستون تاریخ رو از دیتاگرید انتخاب کنی و با استفاده از کلاس این فایل به شمسی تبدیل کنی. این کار رو باید تا سطر آخر تکرار کنی.
دوست عزیز میشه بگی چه جوری، ما که نمیدونیم چند تا داده میخواد نمایش داده بشه؟ این کار منطقی به نظر نمیرسه که ما بخوایم تعیین کنیم به تعداد سطرها عمل تبدیل صورت بگیره
hamidsolat
سه شنبه 10 آذر 1388, 22:34 عصر
بعد از اینکه داده ها به دیتاگرید وارد شد شما میتونید با یه فور ساده که از 0 تا dataGrid.count-1 ادامه داره این کار رو انجام بدید البته درسته برای یه دیتاگرید که رکوردهای زیادی داره زیاد منطقی نیست و باعث سربار سیستم میشه
saeeedft
سه شنبه 10 آذر 1388, 23:50 عصر
ایا راهی هست که بدون شمردن سطرها ، اتوماتیک این کار انجام بشه؟
mosi_asgari
چهارشنبه 11 آذر 1388, 00:27 صبح
شما به راحتی می توانید تاریخ میلادی را به شمسی بدون دردسر و بدون dll و یا نمیدونم خواندن تعداد سطر یا ستون انجام دهید. نمی دونم چرا دوستان این راه ها را به شما پیشنهاد میدهند؟؟؟
کلاسی هست در .Net به نام PersianCalendar در فضای نامی System.Globalization.شما به این کلاس تاریخ میلادی می دهید و سال و ماه و روز شمسی را ازش میگیرید.
روش کار در کد زیر است :
PersianCalendar pc=new PersianCalendar();
int year = pc.GetMonth(DateTime.Now);
int month= pc.GetMonth(DateTime.Now);
int day= pc.GetDayOfMonth(DateTime.Now);
به جای DateTime.Now باید مقداری که از دیتابیس می خونی را قرار دهی و سپس سه متغیر year و month و day رو بریز در یک متغیر string بعد در GridView نمایش بده.
string date = year.ToString() + "/" + month.ToString() + "/" + day.ToString();
یا علی
saeeedft
چهارشنبه 11 آذر 1388, 01:08 صبح
دوست عزیز روش شما رو تست نکرده بودم، یه تست کنم، فکر کنم بهترین روش همین باشه، چون دیگه درگیر کارای اضافی دیگهای نمیشیم
rezagala
چهارشنبه 11 آذر 1388, 20:55 عصر
با سلام
دوستان عزیز این راههای که دادید را میدهید و تبدیل تاریخها را همه میدانند
ببینید در دلفی برای یک Tadoquery یک رویداد هست به نام OnCalcFields
که در این رویداد اگر تبدیل تاریخ را بنویسیم به طور اتو ماتیک تمام رکوردهای تاریخ میلادی به شمسی نمایش داده میشود
بنده میخواستم ببینم در C# هم چنین چیزی هست یا خیر
و اگر نه خوانده تک تک رکوردها و تبدیل آنها و نمایش در ستون دیگر به نظرم راه درستی نیست
ممنون
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.