PDA

View Full Version : تبدیل تاریخ میلادی به شمسی در هنگام Bind



rainlover
جمعه 26 خرداد 1396, 11:22 صبح
با عرض سلام و آرزوی قبولی طاعات و عبادات عزیزان
من یک textBox روی فرمم دارم که کاربر داخلش تاریخ شمسی رو وارد می کنه
می خوام این تکست باکس رو bind کنم به یه فیلد تو دیتا تیبلم.
مشکل اینجاست که با دستور
txtTarikh.DataBindings.Add("Text", ds.tblDastoorKar, ds.tblDastoorKar.TarikhColumn.ColumnName);


دقیقا متن داخل تکست باکس که تاریخ شمسیه بایند میشه به تاریخ میلادی تو دیتابیس.
یعنی می خوام این تاریخ کانورت بشه به تاریخ میلادی بعد بایند شه.
dll تبدیل تاریخ به شمسی و میلادی رو هم دارم.
ممنون میشم راهنمایی کنید

Mahmoud.Afrad
جمعه 26 خرداد 1396, 13:28 عصر
رویدادهای Format و Parse از آبجکت DataBinding را طوری پیاده سازی کنید که در رویداد Format تاریخ میلادی به شمسی و در رویداد Parse تاریخ شمسی به میلادی تبدیل شود.
یک مثال که میتونید ازش کمک بگیرید:
https://stackoverflow.com/a/2652931

rainlover
جمعه 02 تیر 1396, 10:27 صبح
ممنونم از راهنماییتون. ولی من می خوام تو یه گرید این کار انجام بشه نه تو کنترل های ساده روی فرم. یعنی تو ستونهای گریدم که داره به دیتاتیبل وصل میشه این کانورت صورت بگیره. و چون گریدم قابلیت ویرایش دیتا رو داره میخوام کاربر تاریخ رو به شمسی وارد کنه ولی من تو دیتابیس میلادی ذخیره کنم.

parvizwpf
جمعه 02 تیر 1396, 12:08 عصر
شما در تیبلتون هر دو رو بگیرید خیلی راحت تر هستید یکی برای نمایش استفاده میشه دیگری برای محاسبات

shahryari
جمعه 02 تیر 1396, 13:00 عصر
یه کلاس بنویس که از تکست باکس ارث ببره، یه پرورپرتی از نوع رشته تعریف کن که مقدار رو بگیره و به اون فرمتی که بخوای خروجی بده و بجای خاصیت تکست ، اون پروپرتی رو که تازه نوشته ای رو بایند کن

Mahmoud.Afrad
جمعه 02 تیر 1396, 13:13 عصر
ممنونم از راهنماییتون. ولی من می خوام تو یه گرید این کار انجام بشه نه تو کنترل های ساده روی فرم. یعنی تو ستونهای گریدم که داره به دیتاتیبل وصل میشه این کانورت صورت بگیره. و چون گریدم قابلیت ویرایش دیتا رو داره میخوام کاربر تاریخ رو به شمسی وارد کنه ولی من تو دیتابیس میلادی ذخیره کنم.
شما سوالی که در پست اول پرسیدید رو یکبار دیگه بخونید. دقیقا سوالتون در مورد تکست باکس هست و حرفی از دیتاگرید نزدید.

با عرض سلام و آرزوی قبولی طاعات و عبادات عزیزان
من یک textBox روی فرمم دارم که کاربر داخلش تاریخ شمسی رو وارد می کنه
می خوام این تکست باکس رو bind کنم به یه فیلد تو دیتا تیبلم.
مشکل اینجاست که با دستور
txtTarikh.DataBindings.Add("Text", ds.tblDastoorKar, ds.tblDastoorKar.TarikhColumn.ColumnName);


دقیقا متن داخل تکست باکس که تاریخ شمسیه بایند میشه به تاریخ میلادی تو دیتابیس.
یعنی می خوام این تاریخ کانورت بشه به تاریخ میلادی بعد بایند شه.
dll تبدیل تاریخ به شمسی و میلادی رو هم دارم.
ممنون میشم راهنمایی کنید


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