PDA

View Full Version : سوال: تاریخ شمسی و محاسبات مربوطه!!! LINQ



hadimtn
دوشنبه 29 تیر 1394, 18:56 عصر
سلام.
1. همونطور که میدونید کامپوننت و روش های مختلفی برای بدست آوردن تاریخ شمسی و استفاده از اون وجود داره.
حتما باید از DateTimePicker استفاده کنم و کاربر بصورت دستی وارد نکنه! که نوع شمسی اون، [از] BehComponents رو انتخاب کردم!

کاری که انجام میدم با تاریخ؛ اینه که داده هایی که مابین دو تاریخ مشخص وارد شده اند رو میخوام پیدا کنم! (LINQ)
میخوام کار رو اصولی انجام بدم و به نظرم اصولی ترین راه اینه که توی پایگاه داده هم از نوع تاریخ ذخیره بشن، نه رشته و عددی و ...
از اونجایی که با تاریخ اصلا کار نکردم این سوال رو میپرسم!
پرس و جوی مابین دو تاریخ به چه شکل انجام میشه؟! و بهترین روش چیه؟!

2. این خطا بخاطر چی میاد:
133422

133423

این تاریخ رو موقع ثبت رکورد میخوام وارد کنم!

khokhan
دوشنبه 29 تیر 1394, 20:07 عصر
سلام.
1. همونطور که میدونید کامپوننت و روش های مختلفی برای بدست آوردن تاریخ شمسی و استفاده از اون وجود داره.
حتما باید از DateTimePicker استفاده کنم و کاربر بصورت دستی وارد نکنه! که نوع شمسی اون، [از] BehComponents رو انتخاب کردم!

کاری که انجام میدم با تاریخ؛ اینه که داده هایی که مابین دو تاریخ مشخص وارد شده اند رو میخوام پیدا کنم! (LINQ)
میخوام کار رو اصولی انجام بدم و به نظرم اصولی ترین راه اینه که توی پایگاه داده هم از نوع تاریخ ذخیره بشن، نه رشته و عددی و ...
از اونجایی که با تاریخ اصلا کار نکردم این سوال رو میپرسم!
پرس و جوی مابین دو تاریخ به چه شکل انجام میشه؟! و بهترین روش چیه؟!

2. این خطا بخاطر چی میاد:




این تاریخ رو موقع ثبت رکورد میخوام وارد کنم!

برای اینکه نوشتین

Datetime.parse(tarikh)
درحالیکه متغییر tarikh بافرمت datetime نیست ، بلکه طی یک متددر بالا از تاریخ شمسی یا همون Persian calendar خروجی گرفتین

davidrobert
دوشنبه 29 تیر 1394, 20:21 عصر
سلام.
1. همونطور که میدونید کامپوننت و روش های مختلفی برای بدست آوردن تاریخ شمسی و استفاده از اون وجود داره.
حتما باید از DateTimePicker استفاده کنم و کاربر بصورت دستی وارد نکنه! که نوع شمسی اون، [از] BehComponents رو انتخاب کردم!

کاری که انجام میدم با تاریخ؛ اینه که داده هایی که مابین دو تاریخ مشخص وارد شده اند رو میخوام پیدا کنم! (LINQ)
میخوام کار رو اصولی انجام بدم و به نظرم اصولی ترین راه اینه که توی پایگاه داده هم از نوع تاریخ ذخیره بشن، نه رشته و عددی و ...
از اونجایی که با تاریخ اصلا کار نکردم این سوال رو میپرسم!
پرس و جوی مابین دو تاریخ به چه شکل انجام میشه؟! و بهترین روش چیه؟!

2. این خطا بخاطر چی میاد:
133422

133423

این تاریخ رو موقع ثبت رکورد میخوام وارد کنم!

این چه وضع دیتابیس ساختن عنوان ها رو انگلیسی کن قبل از اینکه کل برنامه ات بهم بریزه

hadimtn
سه شنبه 30 تیر 1394, 00:25 صبح
این چه وضع دیتابیس ساختن عنوان ها رو انگلیسی کن قبل از اینکه کل برنامه ات بهم بریزه
1. ..... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

2. اونوقت تو DataGrid باید چیکارش کنم؟!!!!
اینجوری همون عنوان میاد دیگه ...
مشکلش چیه؟!

hadimtn
سه شنبه 30 تیر 1394, 00:28 صبح
برای اینکه نوشتین

Datetime.parse(tarikh)
درحالیکه متغییر tarikh بافرمت datetime نیست ، بلکه طی یک متددر بالا از تاریخ شمسی یا همون Persian calendar خروجی گرفتین
1. ........ ؟؟؟!!!!!!!!

2. خب وقتی نمینویسم میگه:

Cannot implicitly convert type 'string' to 'System.DateTime'

davidrobert
سه شنبه 30 تیر 1394, 15:34 عصر
1. ..... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

2. اونوقت تو DataGrid باید چیکارش کنم؟!!!!
اینجوری همون عنوان میاد دیگه ...
مشکلش چیه؟!

دوست عزیز تو دیتاگرید یک ویژگی داره به نام DataBound که شما اسم دیتابیسی یا همون اسکیولی رو میدید و یه ویژگی دیگه داره به نام headertext که عنوان بالا رو فارسی نشان میده این مشکل فارسی قرا دادن شما از عنوان و حالا ایراد فارسی نوشتن در اسکیول شما در کوئری نویسی با مشکل بر خورد میکنید و برنامه شما زیاد خطا میده اگه توجه کرده باشید شماره تلفن شما این طوری شده [شماره تلفن] در اسکیول سرور علت این میباشد که در اسکیول سرور میونه کلمات نباید space قرار بگیره که خودش space رو از بین میبره و شماره تلفن به این صورت میشه شمارهتلفن چه فرقی کرد این طوری هم اصلا مناسب نیست فکر کنم مبتدی باشید شما چون خیلی ایراد بدی هستش که این طوری قرار بدید عنوان رو در اسکیول سرور.اون فارسی فنگلیش قرار بدید خیلی خوب هستش نه این که کاکتر فارسی

amir_pro
سه شنبه 30 تیر 1394, 16:09 عصر
به نظر من اصولی ترین روش اینه که فیلدهای مربوط در دیتابیس از نوع DateTime بذاری (بدیهی است که تاریخ ها را باید به صورت میلادی ذخیره کنید) و برای نمایش داخل برنامه هر نیازی داشتین به صورت شمسی نمایش بدین. تاریخها را که میلادی از همم میتونید کم کنید.

CrafteR
سه شنبه 30 تیر 1394, 16:16 عصر
سلام.
1. همونطور که میدونید کامپوننت و روش های مختلفی برای بدست آوردن تاریخ شمسی و استفاده از اون وجود داره.
حتما باید از DateTimePicker استفاده کنم و کاربر بصورت دستی وارد نکنه! که نوع شمسی اون، [از] BehComponents رو انتخاب کردم!

کاری که انجام میدم با تاریخ؛ اینه که داده هایی که مابین دو تاریخ مشخص وارد شده اند رو میخوام پیدا کنم! (LINQ)
میخوام کار رو اصولی انجام بدم و به نظرم اصولی ترین راه اینه که توی پایگاه داده هم از نوع تاریخ ذخیره بشن، نه رشته و عددی و ...
از اونجایی که با تاریخ اصلا کار نکردم این سوال رو میپرسم!
پرس و جوی مابین دو تاریخ به چه شکل انجام میشه؟! و بهترین روش چیه؟!

2. این خطا بخاطر چی میاد:
133422

133423

این تاریخ رو موقع ثبت رکورد میخوام وارد کنم!

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

سوال دومتون: خطا به این خاطر هست که مقدار تاریخی که در تابع Parse استفاده کردین از فرمت درستی استفاده نشده. اگه از فرمت خاصی دارین استفاده میکنید میتونید از تابع ParseExact استفاده کنید.

hadimtn
چهارشنبه 31 تیر 1394, 03:21 صبح
دوست عزیز تو دیتاگرید یک ویژگی داره به نام DataBound که شما اسم دیتابیسی یا همون اسکیولی رو میدید و یه ویژگی دیگه داره به نام headertext که عنوان بالا رو فارسی نشان میده این مشکل فارسی قرا دادن شما از عنوان و حالا ایراد فارسی نوشتن در اسکیول شما در کوئری نویسی با مشکل بر خورد میکنید و برنامه شما زیاد خطا میده اگه توجه کرده باشید شماره تلفن شما این طوری شده [شماره تلفن] در اسکیول سرور علت این میباشد که در اسکیول سرور میونه کلمات نباید space قرار بگیره که خودش space رو از بین میبره و شماره تلفن به این صورت میشه شمارهتلفن چه فرقی کرد این طوری هم اصلا مناسب نیست

فرمایش شما رو کاملاً قبول دارم که بهتره عناوین با حروف انگلیسی باشه، سعی هم میکنم همین کار رو بکنم! ولی تا به حال در این مورد به مشکل برنخوردم!

133448