نمایش نتایج 1 تا 26 از 26

نام تاپیک: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

  1. #1

    Post بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    سلام دوستان خیلی جاها بحث های مختلف میبینم یا اصلا خودم درگیرش میشم که مثلا ی فرم ساده داریم تاریخ ثبت نام رو میخوایم بزنیم بر اساس این مثال بریم جلو.

    میخوام بدونم بهترین روش ذخیره تاریخ شمسی و همچنین لود کردن اون چیه؟ مثال تاریخ 1398/02/15 قرار ذخیره بشه

    میتونیم فیلد تیبل رو از نوع nvarchar بذاریم و با استفاده از کلاس PersianCalendar در سی شارپ اونو به بصورت رشته در دیتابیس ذخیره کنیم اما به قول بعضی از دوستان ذخیره تاریخ بصورت رشته اشتباه وقتی که نوع داده ای مربوطه وجود داره !!!!!!!! اگر زمانی لازم به محاسبه خاصی باشه امکانش نیست (مثلا من خواستم در یک برنامه اطلاعات مربوط به ماه جاری و هفته جاری و روز جاری رو نشون بدم اما در بخش هفته جاری به مشکل خوردم و همچنان هم مشکل دارم اگر کسی راه حلی داشت ممنون میشم بگه نوع داده از نوع رشته هست)

    دوستانی میگن بهتر از datetime2 استفاده کرد مشکل ذخیره تاریخ فارسی نداره که در وبسایت های دیگر گزارشاتی دادن ک اون نوع در لود یا نمیدونم در سال کبیسه مشکل داره(حالا اگر دوستان تجربه اش رو دارن محبت کنن توضیح بدید)
    دوستی به من گفتن از Culture استفاده کنم وقت نشده تست کنم و نمیدونم چطوری اگر کسی تجربه داره یا مشکلی در این نوع هم هست لطفا بگه
    https://csharp.net-tutorials.com/wor...ureinfo-class/
    من تا حالا تاریخ تولد ک محاسباتی داره رو انجام ندادم اما بازم شنیدم که اگر نوع رشته ای باشه گویا به مشکل میخوره در هنگام نمایش

    خب نکات لازم :
    1- فرض رو بر اساس ذخیره تاریخ به وسیله یک textbox یا masked بذارید نه استفاده از datepicker
    2- سعی کنید یک متد کامل و آپدیت رو ارائه بدید بالاخره الان visual 2017 پایدار شده و sql 2017 (هرچند 2019 ) هم هست ولی خب زبان سی شارپ پیشرفت های زیادی کرده پس کد و کلاس های آپدیت معرفی کنید لطفا
    3- حتما حتما تجربه خودتون از استفاده از کد ارائه شده رو بگید . ذکر باگ ها و... و از همه مهتر دلیل ، یک دلیل خوب برای استفاده از کد و نوع داده ای در sql رو مطرح کنید.
    4 - درسته الان فریم ورک EF و همچنین WPFو.. جای ado.net و winform رو گرفته اما لطفا بر اساس winform و ado حدالامکان کد هارو ارائه بدید که عمومی تر باشه.

    و در پایان از مدیران عزیز این انجمن درخواست دارم این تاپیک رو پین کنید تا یکبار برای همیشه این موضوع مشخص بشه و دوستان تجربه های خودشان رو ارائه بدن و اگر کسی در رابطه با تاریخ سردرگم بود لینک این تاپیک رو به عنوان یک منبع ارائه کنیم.
    اگر کسی هم یک دیتاپیکر فارسی بدون باگ داره معرفی کنه

    پیشاپیش از دوستان و اساتیدی که در تکمیل این تاپیک همکاری میکنن تشکر ویژه دارم

  2. #2
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟؟؟

    بابت تاریخ شمسی بهترین نوع Date هستش و برای زمان هم از Time استفاده کنید.
    بنده EF اصلاع توسعه نمیکنم چون تو لود اطلاعات اگه تحت شبکه باشه و اطلاعات زیاد باشه زمان EF تو تبدیل تاریخ میلادی به شمسی خیلی زمانبر هستش.
    و دوم بعضی تاریخ ها رو باز من توسعه نمیکنم توسط برنامه ذخیره بشه مثل تاریخ ثبت چون اگه تحت شبکه باشه و بعصی از کامپیوتر ها تاریخ شون توجه کنیم برای حداقل چند روز، هفته ، ماه و یا سال عقب هستش بخاطر همین تو تاریخ ثبت اطلاعات باعث میشه اطلاعات آسیب زیادی ببینه تو محاسبه یا گزارش گیری.
    این سورس شما سر بزنید http://barnamenevis.org/showthread.p...8C%D8%B3%DB%8C
    یه دفتر تلفن ساده هستش . ولی از کدنویسی خیلی حرفه ای ADO استفاده شده و مشکل تاریخ هم تو یک لینک بهش ارتباط دادم رفع کردم.
    عمل تبدیل تاریخ روی سرور انجام میشه شمسی به میلادی روی سرور موقع ذخیره یا ویرایش و برعکس میلادی به شمسی موقع نمایش سرعتش خیلی بهتر از EF هستش تو شبکه. دوم علتی که میگم خوب نیست سر محاسبات و یا گزارش های خیلی قوی برحسب تاریخ حتی به صورت نمودار که اگه نوع فیلد رشته باشه که به کل نمیشه محاسبه انجام داد که این بلا سر بنده امد تا یک ماه گزارش مشتری ام کشید سر تاریخ چون باید از یک تاریخ فقط آمار مقدار عملیات نشان میدادم که روی میلادی امکانش بود نه شمسی ولی با عمل کدنویسی روی سرور مشکل حل شد و یک گزارش بدون مشکل لحظه ای درست کردم.
    سومی موضوع اگه ویندوز شما 10 باشه و تاریخ شما شمسی باشه و اسکیول شما 2017 و نوع فیلد قرار بدید Date و تاریخ امروز بدید 25/02/1398 درست تبدیل میکنه به میلادی یعنی 600 سال تاریخ میبره جلو وقتی تاریخ مستقیم بدون هیچ تبدیل چی از برنامه یا مستقیم به فیلد بدید میزون600 سال میبره جلو یا اگه به میلادی 2019-01-01 بدید درست فکر میکنه این تاریخ شمسی به سال 2569-01-01 میبره یعنی 600 سال باز میبره جلو و کل اطلاعات خراب میشه. تو محاسبه و تاریخ به همین خاطر با این مشکل برنخورم یک Functions گیر آوردم تا سال 1280 رو بدون هیچ مشکلی دقیق محاسبه میکنه و توسط ویژوال با Culture انجام بدید سرعت تبدیل زیاد میشه برای نمایش و از Functions استفاده کنی سرعت بهتر هستش داخل این سورس استفاده همه دستورات هستش و حتی بیشتر عملیات محاسبه تاریخ روی سرور انجام میشه برای زمان حال بدون مشکلی و با دقت بالا و دوم تاریخ جاری برای تاریخ ثبت به صورت میلادی از سرور انجام میشه اگه تاریخ سیستم مشتری اشتباه بود موقع نمایش یا گزارش گیری از سیستم مشتری بدون مشکل به تاریخ جاری گزارش میده و مشکل رفع میشه. چون تاریخ بررسی از سرور نه سیستم که خطا بیشتر بشه.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1394
    پست
    35

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    استاندارد اینه که تاریخ به میلادی ذخیره بشه در دیتابیس و تو سی شارپ از Culture استفاده کنید,البته در صورتی که ویندوز 10 یا سرور 2016 داشته باشین.
    EF در نهایت به ADO تبدیل میشه من نمیدونم شما چرا این دو تا رو جدا می دونید به نظر من هیچ استانداردی وجود نداره و برنامه نویس خودش باید تشخیص بده مستقیم از ado استفاده کنه یا Orm

  4. #4
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    بله EF تبدیل میشه به ADO سمت سرور ولی از لحاظ سرعت کند هستش و همه جور EF تست گرفتم بدرد خیلی کارها نمیخوره و EF در حد دفتر تلفن و پروژه های کوچک میبینم میشه ازش استفاده کرد نه بزرگ. ولی دوستانی هستن از EF در پروژه های بزرگ استفاده میکنن و میگن کمی کند شده ولی روز به روز که اطلاعات بیشتر بشه کندی اش بیشتر میشه. سر لودش اطلاعات زیاد ضربه زیادی خوردم تو EF بخاطر همین توسعه نمیکنم تو کارهای بزرگ یا تحت شبکه استفاده بشه.

  5. #5
    مدیر کل سایت آواتار محمد آشتیانی
    تاریخ عضویت
    مهر 1384
    محل زندگی
    تهران
    پست
    1,528

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    بله EF تبدیل میشه به ADO سمت سرور ولی از لحاظ سرعت کند هستش و همه جور EF تست گرفتم بدرد خیلی کارها نمیخوره و EF در حد دفتر تلفن و پروژه های کوچک میبینم میشه ازش استفاده کرد نه بزرگ. ولی دوستانی هستن از EF در پروژه های بزرگ استفاده میکنن و میگن کمی کند شده ولی روز به روز که اطلاعات بیشتر بشه کندی اش بیشتر میشه. سر لودش اطلاعات زیاد ضربه زیادی خوردم تو EF بخاطر همین توسعه نمیکنم تو کارهای بزرگ یا تحت شبکه استفاده بشه.
    سلام
    اینکه شما به هر دلیلی تجربه خوبی از EF ندارید (دلیل میتونه عدم شناخت و تسلط کافی باشه مثلا) ، برای زیر سوال بردن این تکنولوژی نمیتونه کافی باشه. اینکه شما قابلیت های EF رو در حد پروژه دفترچه تلفن می بینید هم ، بیشتر شبیه شوخیه تا بحث جدی.
    اتفاقا EF ، مزیت ها و قابلیت های خودش رو موقع کار در پروژه های بزرگ به خوبی نشون میده.


    برسیم به موضوع تاپیک
    شما کافیست تاریخ ها رو به صورت میلادی ذخیره کنید (صرفا هنگام نمایش باید تبدیل کنید به شمسی و بالعکس موقع ذخیره) البته این تبدیل هم میتونه توسط شما انجام نشه و از کنترل های DateTimePicker شمسی استفاده کنید که این کار رو خودشون انجام میدن. نمیدونم اصرار بر استفاده از textBox یا Masked برای چیست ، به هر حال بهتره از راه حل های استاندارد استفاده کنید
    این کنترل نمونه بسیار خوبیه از نظر بنده http://barnamenevis.org/showthread.p...highlight=date

    در مورد datetime2 هم کاملا اشتباه می کنید ، این تایپ چون قابلیت این رو داره که از سال -یک- (0001-01-01) در خودش نگه داره ، پس بعضی توسعه دهنده ها فکر میکنند میشه مقادیر شمسی (مثلا 1398) داخلش ذخیره کرد ، در حالی که اشتباه هست ، چون به هر صورت اون تایپ مبنای محاسبات تاریخش ، تقویم میلادی هست و ماه ها و تعداد روزهاشون و همه محاسبات دیگرش ، بر مبنای تقویم میلادی هست ، بنابراین ، هیچوقت یک تاریخ شمسی رو در یک فیلد از نوع dateTime در دیتابیس ذخیره نکنید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  6. #6
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    سلام به دوست عزیز آقای محمد آشتیانی عزیز اول بگم بنده قصد جسارتی راجب این تکنولوژی ندارم. و به دو علت بنده EF ضعیف میدانم یک بابت سرعت لود و دوم هم باز سرعت لود هستش که اگه یک سیستم ضعیف باشه و تحت شبکه باشه آیا باز EF روی سیستم ضعیف میتونه اطلاعاتی زیادی رو لود کنه یا نه.
    چون برای من هیچ وقت سیستم قوی مشتری ملاک نبوده چون وقتی با مشتری ام حرف میزنم میگه سیستم من ضعیف هستش منم میگم مشکلی نیست میگم اگه محل اطلاعات شما نصب بشه منظور همون اسکیول سرور هستش به مشتری میگم وقتی اسکیول سرور نصب شد مشکلی نیست من روی سیستم ضعیف شما برنامه رو میارم بالا با سرعت که راضی هستید و اگه خیلی بزرگ شد بعدا پول داشتید ارتقا بدید تا راحت تر باشید .
    چون هدف من این نیست مشتری های که میگیرم سیستم قوی باشن چون روی سیستم قوی ها مشکلی ندارم و مشکل اصلی بنده سیستم ضعیف ها هستش آیا میتونه EF سریع ده تا عملیات که کمترین عملیات برای من هستش وقتی روی دکمه ذخیره میزنم انجام بده یا نه. یعنی من چند تا ذخیره و ویرایش انجام میدم و لازم باشه فراخونی برای نمایش انجام میدم آیا EF تو یک ثانیه یا کمتر میتونه همه شون روی سیستم ضعیف انجام بده من تست گرفتم نمیتونه و سیستم هنگ میکنه و یا انقدر میکشه بیاد بالا که خسته میشم.
    بخاطر این موارد دیدم ازش خداحافظی کردم و هر بار سعی کردم بیام سمتش سر سرعت لودش ازش شاکی میشدم چون سیستم خودم متوسط هستش نه قوی و نه ضعیف

  7. #7

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    در رابطه با پست های دوست عزیز davidrobert بنده نمیدونم دوستان دقیقا چه نوع گزارش گیری رو میگن که روی تاریخی که بصورت nvarchar ذخیره شده باشه به مشکل میخورن؟چون بنده تا حالا برام پیش نیومده و جای سوال داره برام در چه مواقعی هست دقیقا.!!!!!!!! درمورد سورسی هم که لینک دادید کمال تشکر رو دارم حتما بررسی و استفاده میکنم من برنامه نویسی شبکه انجام ندادم و از کند بودن entity اونجا اطلاع ندارم. اما طبق استفاده البته نه خیلی زیاد و با تجربه بالا ولی چندباری که کار کردم مشکل لود نداشتم البته داشتم ها بعدا متوجه شدم نحوه کد زدنم برای لود دیتا مثلا توی گرید اشتباه بود بهرحال تجربه شما و سایر دوستان بالاتر و ما هم دوست داریم از این تجربه استفاده کنیم

    و اگر نمونه کد های دیگه هم داشتین درمورد فقط تبدیل تاریخ میلادی به شمسی و ذخیره و... اون برای بنده و سایر دوستان در صورت امکان قرار بدید خیلی خوشحال میشیم.

    بنده خودم خیلی اوقات فیلد دیتابیس رو رشته ای میذارم و تاریخ رو به این صورت
    p.GetYear(DateTime.Now).ToString() + "/" + p.GetMonth(DateTime.Now).ToString("0#") + "/" + p.GetDayOfMonth(DateTime.Now).ToString("0#");


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

    حالا دوستان عزیزی ک تجربه دارن در این مورد اگر مشکلی وجود داره یا جایی به باگی برخورد کردن گزارش کنید در این تاپیک تا همه دوستان مطلع بشن

  8. #8

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    در رابطه با پست دوست عزیز asiatec
    بنده ذکر هم کردم که Culture رو فقط شنیدم و استفاده نداشتم اما خب طبق تجربه و گفته شما ک روی سیستم عامل های جدید تر پاسخگو هست خب این مورد جالبی نیست
    بالاخره ویندوز 7 و 8 هم هنوز در ایران زنده هستن
    ایا این Culture روی سایر سیستم عامل ها که بصورت دیفالت تقویم شمسی رو ندارن چطور عمل میکنه؟
    در این سایت نمونه کدی رو گذاشتن در این رابطه ایا همان چیزی هست که شما میگید؟
    لینک سایت tosinso
    و دیدم ک اینجا هم از همان کلاس پرشین استفاده کردن !!!

  9. #9

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    اینکه شما به هر دلیلی تجربه خوبی از EF ندارید (دلیل میتونه عدم شناخت و تسلط کافی باشه مثلا) ، برای زیر سوال بردن این تکنولوژی نمیتونه کافی باشه. اینکه شما قابلیت های EF رو در حد پروژه دفترچه تلفن می بینید هم ، بیشتر شبیه شوخیه تا بحث جدی.
    اتفاقا EF ، مزیت ها و قابلیت های خودش رو موقع کار در پروژه های بزرگ به خوبی نشون میده.


    برسیم به موضوع تاپیک
    شما کافیست تاریخ ها رو به صورت میلادی ذخیره کنید (صرفا هنگام نمایش باید تبدیل کنید به شمسی و بالعکس موقع ذخیره) البته این تبدیل هم میتونه توسط شما انجام نشه و از کنترل های DateTimePicker شمسی استفاده کنید که این کار رو خودشون انجام میدن. نمیدونم اصرار بر استفاده از textBox یا Masked برای چیست ، به هر حال بهتره از راه حل های استاندارد استفاده کنید
    این کنترل نمونه بسیار خوبیه از نظر بنده http://barnamenevis.org/showthread.p...highlight=date

    در مورد datetime2 هم کاملا اشتباه می کنید ، این تایپ چون قابلیت این رو داره که از سال -یک- (0001-01-01) در خودش نگه داره ، پس بعضی توسعه دهنده ها فکر میکنند میشه مقادیر شمسی (مثلا 1398) داخلش ذخیره کرد ، در حالی که اشتباه هست ، چون به هر صورت اون تایپ مبنای محاسبات تاریخش ، تقویم میلادی هست و ماه ها و تعداد روزهاشون و همه محاسبات دیگرش ، بر مبنای تقویم میلادی هست ، بنابراین ، هیچوقت یک تاریخ شمسی رو در یک فیلد از نوع dateTime در دیتابیس ذخیره نکنید.
    دلیل خاصی واقعا برای وارد کردن یک تاریخ بصورت دستی توسط تکس باکس وجود نداره ولی خب مهندس من چند datepicker رو تست کردم هرکدام باگ های خودشون رو داشتن و اذیت کننده این نمونه ای هم که شما معرفی کردید کامپونت واقعا خوبی نسبت به بقیه که بنده دیدم ، هست ولی مثلا انتخاب سال نداره و برای سال باید هی ماهارو جا به جا کرد مثلا طرف بخواد تاریخ تولد وارد کنه اخرش باید سال رو دستی بده و حالا دیگر مورد هایی ک در تاپکیشون مطرح شده.

    و واقعا تشکر میکنم از لطف شما ک درمورد datetime2 بنده رو کامل آگاه کردید

    همچنان منتظر نظرات و نمونه کد های دوستان و کامپونت های پیشنهادی هستیم

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1394
    پست
    35

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    اگر سیستم عامل ویندوز 10 نباشه عملیات تبدیل انجام نمیشه،من روش های زیادی طی این سالها استفاده کردم مثلا:

    استفاده از دیتاپیکر که خودش عملیات تبدیل و انجام میده
    استفاده از فانکشن تو سی کول سرور
    درج مستقیم تو دیتابیس(collation رو روی پرشین ست میکنی ولی با بعضی تاریخ ها مشکل داره مثل 31 شهریور)
    استفاده از کلاس پرشین کلندر
    یه جدول جدا برای تاریخ شمسی

    این کد توسینو هم فقط به درد نمایش تایم میخوره در حد اینکه تاریخ امروز و نشون بدی با اسم روز و این حرفا...
    به نظر من مهم ترین بخش وقتی هست که میخوای تاریخ در گرید نشون داذه بشه
    آخرین ویرایش به وسیله asiatec : سه شنبه 17 اردیبهشت 1398 در 09:25 صبح

  11. #11
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    این فانکشن که داخل این لینک http://barnamenevis.org/showthread.p...=1#post2411600 استفاده کردم مشکلی نداره داخل ویندوز 7 تا 10 تست شده بدون مشکل محاسبه تاریخ از سال 1280 تا آینده مطمئن باش انجام میده و اشتباه انجام نمیده اون آمار نموداری بود که بگه تو هر سال چه تعداد نفر بر حسب شرایط مختلف مردن به صورت دقیق از سال 1300 تا الان بهشون و حتی تا بعدا هم بهشون میده بدون هیچ اشتباه وبه صورت دقیق نمودار میکشه به حالت های مختلف و به کاربر میده.
    این هم بگم محاسبه تاریخ انجام میده که محاسبه تاریخ بعد از ذخیره یا ویرایش دادم به اسکیول یعنی داخل برنامه سن طرف محاسبه نمیکنم داخل اسکیول سرور با یک دستور ساده و فقط روی همون ستون به وسیله Trigger روی همون که ذخیره و ویرایش شده سن متوفی رو حساب میکنم که چند سال عمر کرده و چی بلوغی داره

  12. #12
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    سلام

    من تاریخ رو به صورت رشته ذخیره می کنم
    از دیت تایم پیکر آقای اسکندری استفاده می کنم که به نظرم بهترین نمونه فارسی همینه البته دو زبانه هست.
    https://github.com/HEskandari/FarsiLibrary

    پنج شش سال میشه که کار می کنم و روی سیستمهای زیادی هم برنامه ها رو اجرا کردم ( از ویندوز ایکس پی تا ویندوز 10 ) و هیچ مشکلی نداشتم. نه برای نمایش و یا سرچ و ... .

    فقط یک مشکل کوچیک داره که گاهی اوقات به جای تقویم یه ضربدر بزرگ نمایش میده. بعد از کلی آزمون و خطا متوجه شدم که باید تنظیمات calender ویندوز روی میلادی باشه و مثلا اگه میلادی محلی باشه توی نمایش تاریخ با مشکل روبرو میشه

    یه روش دیگه که دیدم جایی انجام میدادن اینه که نوع فیلد دیتابیس رو DateTime در نظر بگیرید و موقع نمایش و یا ذخیره اطلاعات، مقادیر تاریخ رو از میلادی به شمسی تبدیل کنید و بالعکس. همون روشی که آقای آشتیانی فرمودن
    آخرین ویرایش به وسیله rahmatipoor : سه شنبه 17 اردیبهشت 1398 در 14:03 عصر

  13. #13
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    در ضمینه بررسی و تبدیل تاریخ روی سرور خوبی این Function این هستش که نه به تاریخ سیستم اهمیت میده و نه چیزی یعنی اگه تاریخ سیستم شمسی باشه یا میلادی یا عربی درست این دستور همون کار خودش رو روی اسکیول سرور انجام میده http://barnamenevis.org/showthread.p...=1#post2411600 روی همه شون هم تست شده سیستم عامل ها

  14. #14

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط asiatec مشاهده تاپیک
    اگر سیستم عامل ویندوز 10 نباشه عملیات تبدیل انجام نمیشه،من روش های زیادی طی این سالها استفاده کردم مثلا:

    استفاده از دیتاپیکر که خودش عملیات تبدیل و انجام میده
    استفاده از فانکشن تو سی کول سرور
    درج مستقیم تو دیتابیس(collation رو روی پرشین ست میکنی ولی با بعضی تاریخ ها مشکل داره مثل 31 شهریور)
    استفاده از کلاس پرشین کلندر
    یه جدول جدا برای تاریخ شمسی

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

    من موقع نصبsql در تنظیمات collation روی persian میذارم و موقع ساخت دیتابیس هم دیفالت میذارم باشه.. نوع فیلد تاریخ هم همیشه nvarchar و از کلاس پرشین هم استفاده میکنم ولی با 31 مشکلی ندارم

    ممنون میشم بگید در چه حالتی دقیقا مشکل ساز که بنده تست بزنم!!!!!!

    درمورد گرید هم اگر تاریخ شمسی و رشته ای ذخیره شده باشه با دستور سلکت هرآنچه ذخیره میشه نمایش میده مگر اینکه میلادی ثبت شده باشه.... نمونه دیتاپیکر ک استفاده کردید رو میشه مطرح کنید با لینک یا سورس و هرچی

  15. #15

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط rahmatipoor مشاهده تاپیک
    سلام

    من تاریخ رو به صورت رشته ذخیره می کنم
    از دیت تایم پیکر آقای اسکندری استفاده می کنم که به نظرم بهترین نمونه فارسی همینه البته دو زبانه هست.
    https://github.com/HEskandari/FarsiLibrary

    پنج شش سال میشه که کار می کنم و روی سیستمهای زیادی هم برنامه ها رو اجرا کردم ( از ویندوز ایکس پی تا ویندوز 10 ) و هیچ مشکلی نداشتم. نه برای نمایش و یا سرچ و ... .

    فقط یک مشکل کوچیک داره که گاهی اوقات به جای تقویم یه ضربدر بزرگ نمایش میده. بعد از کلی آزمون و خطا متوجه شدم که باید تنظیمات calender ویندوز روی میلادی باشه و مثلا اگه میلادی محلی باشه توی نمایش تاریخ با مشکل روبرو میشه

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

    بعله بنده هم زیاد دیدم که پیشنهاد مهندس آشتیانی رو میدن که تاریخ بهتره میلادی باشه و موقع نمایش ک لازم هست شمسی کنیم

  16. #16

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    در ضمینه بررسی و تبدیل تاریخ روی سرور خوبی این Function این هستش که نه به تاریخ سیستم اهمیت میده و نه چیزی یعنی اگه تاریخ سیستم شمسی باشه یا میلادی یا عربی درست این دستور همون کار خودش رو روی اسکیول سرور انجام میده http://barnamenevis.org/showthread.p...=1#post2411600 روی همه شون هم تست شده سیستم عامل ها
    تشکر ویژه دارم از شما که همچنان این تاپیک رو زنده نگه داشتین

    از سایر دوستان و مهندس آشتیانی هم دعوت میکنم اگر روش دیگه ای یا تجربه یا نمونه کد و هرچیزی دارند در ادامه مباحث اضافه کنند تا یک تاپیک جامع برای کسایی که مشکلات و تجربه کم در بحث تاریخ شمسی و حواشی اون دارن باشه تا با پابلیک کردن لینکش یکبار برای همیشه مشکل برطرف بشه

  17. #17

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    درود و خسته نباشید
    دارم برنامه ای مینویسم تحت عنوان مدیریت یک هتل (به عنوان نمونه) در ویندوز فرم سی شارپ و پروسیجر ها و تیبل های اس کیو ال


    تو فرم پذیرش مسافر جدید من برای قسمت شروع اقامت مسافر جدید ماسک تکست باکسی گذاشتم که فقط فرمت ####/##/## باید توش فیل بشه و در غیر این صورت به کاربر ارور میده که تاریخ رو اشتباه نوشته و درستش کنه پس یعنی ما اصلا تاریخ اشتباهی نداریم و همه تاریخ هامون کاملا صحیح توی دیتابیس ثبت میشن


    برای مثال پذیرشی انجام میدیم از با شروع اقامت 1398/03/02 و اتاقی رو انتخاب میکنیم که کرایش روزی 1000 تومنه
    در قسمت پذیرش شده های هتل، برای این کاربر اتمام پذیرش رو در 1398/03/09 میزنیم یعنی اون مسافر به مدت 7 روز توی هتل مونده و باید نرم افزار مبلغ 7000 تومن رو ازش بخواد....خب تا اینجای کار درسته و هیچ مشکلی نداریم یعنی تمام قسمت ها بدرستی انجام میشه


    من تست کردم و دیدم برای مثال اگر تاریخ های 1398/02/31 یا 1398/02/29 یا 1398/02/30 رو وارد کنم و اتمام پذیرش رو بزنم کد برنامم ارور میده و میگه نوع تاریخ اشتباهه
    -------------------------------------------------------------------------------------------
    کد قسمت حساب کردن کرایه به این شکل هست:



    PersianCalendar pc = new PersianCalendar();
    string strDate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Today).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");


    DateTime dt1;
    DateTime dt2;


    dt1 = Convert.ToDateTime(strDate);
    dt2 = Convert.ToDateTime(txtBDate.Text);


    int Distance = Convert.ToInt32((dt1 - dt2).TotalDays.ToString());


    که بعد از این قسمت با پروسیجر و دیتابیس کار میکنم که مشکلی نداره کدها و فقط این قسمت مشکل داره و مطمئنم از همین قسمته


    -----------------------------------------------------------------------------------------------------------------


    که به درستی برای همه تاریخ ها کار میکنه به جز روز های 29 و 30 و 31 و خب طبیعتا در تاریخی مثل 1398/02/00 هم که باید ارور بده و طبیعیه اما دلیل ارور های روز های 29و30و31 رو نمیدونم
    ممنون میشم کمکم کنید


    -------------------------------------------------------------------------------------------------------------------


    اروری که برای اون روز ها میده هم اینه:



    {"String was not recognized as a valid DateTime."}

    و این ارور رو روی این خط کد میده:

    dt2 = Convert.ToDateTime(txtBDate.Text);



    که تاریخ شروع اقامت مسافر هست


    لطفا اگه کسی مشکل رو میدونه جواب بده

  18. #18
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط aliwmhmdi مشاهده تاپیک
    درود و خسته نباشید
    دارم برنامه ای مینویسم تحت عنوان مدیریت یک هتل (به عنوان نمونه) در ویندوز فرم سی شارپ و پروسیجر ها و تیبل های اس کیو ال


    تو فرم پذیرش مسافر جدید من برای قسمت شروع اقامت مسافر جدید ماسک تکست باکسی گذاشتم که فقط فرمت ####/##/## باید توش فیل بشه و در غیر این صورت به کاربر ارور میده که تاریخ رو اشتباه نوشته و درستش کنه پس یعنی ما اصلا تاریخ اشتباهی نداریم و همه تاریخ هامون کاملا صحیح توی دیتابیس ثبت میشن


    برای مثال پذیرشی انجام میدیم از با شروع اقامت 1398/03/02 و اتاقی رو انتخاب میکنیم که کرایش روزی 1000 تومنه
    در قسمت پذیرش شده های هتل، برای این کاربر اتمام پذیرش رو در 1398/03/09 میزنیم یعنی اون مسافر به مدت 7 روز توی هتل مونده و باید نرم افزار مبلغ 7000 تومن رو ازش بخواد....خب تا اینجای کار درسته و هیچ مشکلی نداریم یعنی تمام قسمت ها بدرستی انجام میشه


    من تست کردم و دیدم برای مثال اگر تاریخ های 1398/02/31 یا 1398/02/29 یا 1398/02/30 رو وارد کنم و اتمام پذیرش رو بزنم کد برنامم ارور میده و میگه نوع تاریخ اشتباهه
    -------------------------------------------------------------------------------------------
    کد قسمت حساب کردن کرایه به این شکل هست:



    PersianCalendar pc = new PersianCalendar();
    string strDate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Today).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");


    DateTime dt1;
    DateTime dt2;


    dt1 = Convert.ToDateTime(strDate);
    dt2 = Convert.ToDateTime(txtBDate.Text);


    int Distance = Convert.ToInt32((dt1 - dt2).TotalDays.ToString());


    که بعد از این قسمت با پروسیجر و دیتابیس کار میکنم که مشکلی نداره کدها و فقط این قسمت مشکل داره و مطمئنم از همین قسمته


    -----------------------------------------------------------------------------------------------------------------


    که به درستی برای همه تاریخ ها کار میکنه به جز روز های 29 و 30 و 31 و خب طبیعتا در تاریخی مثل 1398/02/00 هم که باید ارور بده و طبیعیه اما دلیل ارور های روز های 29و30و31 رو نمیدونم
    ممنون میشم کمکم کنید


    -------------------------------------------------------------------------------------------------------------------


    اروری که برای اون روز ها میده هم اینه:



    {"String was not recognized as a valid DateTime."}

    و این ارور رو روی این خط کد میده:

    dt2 = Convert.ToDateTime(txtBDate.Text);



    که تاریخ شروع اقامت مسافر هست


    لطفا اگه کسی مشکل رو میدونه جواب بده
    بابت این روش من یه حرکت پیاده کردم خوبم جواب میده تاریخ روی اسکیورل سرور نوع Date قرار دادم و تاریخ از سیستم به دیتابیس شمسی پاس میدم و داخل دیتابیس تاریخ میلادیی تبدیل میکنم.
    و میدانم باز کاربرم تاریخ اشتباه میده و باعث خراب کاری و خطا میشه به همین خاطر قبل از ذخیره یک عملیات دیگه انجام دادم. یک Label مخفی معادل تاریخ شمسی برای میلادی قرار دادم.
    وقتی کاربر تاریخ شمسی رو میده اگه تاریخ اش درست باشه میلادش اش قرار میدم داخل Label ولی اگه اشتباه بود یا خالی بود Label من خالی میشه و قبل از ذخیره بررسی میکنم آیا Label من خالی یا نه اگه خالی یا اشتباه بود به کاربر میگم تاریخ رو صحیح وارد کنید تا اون باشه تاریخ اشتباه به برنامه نده و همین هم شده و اول قبل بررسی همه چیز تاریخ رو تکید میکنم خالی نباشه و وقتی خالی نبود بار دوم تاکید میکنم که تاریخ داد ولی باز Label من خالی بود یعنی معادل شمسی که میلادی درون Label نبود تاریخ اشتباه پس تاریخ رو هم درست وارد کن دیدم مشکلی نیست اون موقع ثبت میکنم. بدون هیچ خطا و مشکلی

  19. #19
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,854

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط aliwmhmdi مشاهده تاپیک
    درود و خسته نباشید
    دارم برنامه ای مینویسم تحت عنوان مدیریت یک هتل (به عنوان نمونه) در ویندوز فرم سی شارپ و پروسیجر ها و تیبل های اس کیو ال


    تو فرم پذیرش مسافر جدید من برای قسمت شروع اقامت مسافر جدید ماسک تکست باکسی گذاشتم که فقط فرمت ####/##/## باید توش فیل بشه و در غیر این صورت به کاربر ارور میده که تاریخ رو اشتباه نوشته و درستش کنه پس یعنی ما اصلا تاریخ اشتباهی نداریم و همه تاریخ هامون کاملا صحیح توی دیتابیس ثبت میشن


    برای مثال پذیرشی انجام میدیم از با شروع اقامت 1398/03/02 و اتاقی رو انتخاب میکنیم که کرایش روزی 1000 تومنه
    در قسمت پذیرش شده های هتل، برای این کاربر اتمام پذیرش رو در 1398/03/09 میزنیم یعنی اون مسافر به مدت 7 روز توی هتل مونده و باید نرم افزار مبلغ 7000 تومن رو ازش بخواد....خب تا اینجای کار درسته و هیچ مشکلی نداریم یعنی تمام قسمت ها بدرستی انجام میشه


    من تست کردم و دیدم برای مثال اگر تاریخ های 1398/02/31 یا 1398/02/29 یا 1398/02/30 رو وارد کنم و اتمام پذیرش رو بزنم کد برنامم ارور میده و میگه نوع تاریخ اشتباهه
    -------------------------------------------------------------------------------------------
    کد قسمت حساب کردن کرایه به این شکل هست:



    PersianCalendar pc = new PersianCalendar();
    string strDate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Today).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");


    DateTime dt1;
    DateTime dt2;


    dt1 = Convert.ToDateTime(strDate);
    dt2 = Convert.ToDateTime(txtBDate.Text);


    int Distance = Convert.ToInt32((dt1 - dt2).TotalDays.ToString());


    که بعد از این قسمت با پروسیجر و دیتابیس کار میکنم که مشکلی نداره کدها و فقط این قسمت مشکل داره و مطمئنم از همین قسمته


    -----------------------------------------------------------------------------------------------------------------


    که به درستی برای همه تاریخ ها کار میکنه به جز روز های 29 و 30 و 31 و خب طبیعتا در تاریخی مثل 1398/02/00 هم که باید ارور بده و طبیعیه اما دلیل ارور های روز های 29و30و31 رو نمیدونم
    ممنون میشم کمکم کنید


    -------------------------------------------------------------------------------------------------------------------


    اروری که برای اون روز ها میده هم اینه:



    {"String was not recognized as a valid DateTime."}

    و این ارور رو روی این خط کد میده:

    dt2 = Convert.ToDateTime(txtBDate.Text);



    که تاریخ شروع اقامت مسافر هست


    لطفا اگه کسی مشکل رو میدونه جواب بده
    خطا میگه که ورودیتون صحیح نیست در txtBDate.Text
    سعی کنید از کامپوننت یا Mask استفاده کنید و اعتبار سنجی کنید

    string TestDate = "1398/02/05";
    DateTime CDate;
    DateTime.TryParse(TestDate,out CDate);



    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  20. #20

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    خطا میگه که ورودیتون صحیح نیست در txtBDate.Text
    سعی کنید از کامپوننت یا Mask استفاده کنید و اعتبار سنجی کنید

    string TestDate = "1398/02/05";
    DateTime CDate;
    DateTime.TryParse(TestDate,out CDate);



    عزیز من از ماسک استفاده کردم توضیح هم دادم که فقط برای روز های 29 و 30 و31 ارور دارم و ورودی ماسک رو برای اون روز ها ارور میگیره..اسم ماسک رو گزاشتم txtbdate ولی تکست باکس نیست اسمش رو خودم اونطوری گزاشتم

  21. #21

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    بابت این روش من یه حرکت پیاده کردم خوبم جواب میده تاریخ روی اسکیورل سرور نوع Date قرار دادم و تاریخ از سیستم به دیتابیس شمسی پاس میدم و داخل دیتابیس تاریخ میلادیی تبدیل میکنم.
    و میدانم باز کاربرم تاریخ اشتباه میده و باعث خراب کاری و خطا میشه به همین خاطر قبل از ذخیره یک عملیات دیگه انجام دادم. یک Label مخفی معادل تاریخ شمسی برای میلادی قرار دادم.
    وقتی کاربر تاریخ شمسی رو میده اگه تاریخ اش درست باشه میلادش اش قرار میدم داخل Label ولی اگه اشتباه بود یا خالی بود Label من خالی میشه و قبل از ذخیره بررسی میکنم آیا Label من خالی یا نه اگه خالی یا اشتباه بود به کاربر میگم تاریخ رو صحیح وارد کنید تا اون باشه تاریخ اشتباه به برنامه نده و همین هم شده و اول قبل بررسی همه چیز تاریخ رو تکید میکنم خالی نباشه و وقتی خالی نبود بار دوم تاکید میکنم که تاریخ داد ولی باز Label من خالی بود یعنی معادل شمسی که میلادی درون Label نبود تاریخ اشتباه پس تاریخ رو هم درست وارد کن دیدم مشکلی نیست اون موقع ثبت میکنم. بدون هیچ خطا و مشکلی
    اصلا نیازی به لیبل مخفی نیست ما میتونیم با ماسک بهش بگیم اگه فول نشد یا کمپلت نشد ارور بده روی ارور پرووایدر و در مورد بحث اشتباه تایپی تاریخ که اشتباه هم وارد کنه خب میشه چک کرد که آیا تاریخی که ثبت کرده اصلا درست هست یا نه
    اما در مورد اون روزهای 29و30و31 ماه....با این روشی که شما گفتین ینی ذخیره در دیتابیس با فرمت date میلادی و نمایش اون با فرمت شمسی آیا امکان پذیره که توی گریدویو هم شمسی نمایش داده بشه؟
    اگه سورس یا فانکشنی دارین یا کد(هرچی)
    لطفا بگین چطوری میتونم اینکارو انجام بدم چون برام مهمه که کاربر در گریدویو تاریخ رو شمسی ببینه
    ممنون

  22. #22
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط aliwmhmdi مشاهده تاپیک
    اصلا نیازی به لیبل مخفی نیست ما میتونیم با ماسک بهش بگیم اگه فول نشد یا کمپلت نشد ارور بده روی ارور پرووایدر و در مورد بحث اشتباه تایپی تاریخ که اشتباه هم وارد کنه خب میشه چک کرد که آیا تاریخی که ثبت کرده اصلا درست هست یا نه
    اما در مورد اون روزهای 29و30و31 ماه....با این روشی که شما گفتین ینی ذخیره در دیتابیس با فرمت date میلادی و نمایش اون با فرمت شمسی آیا امکان پذیره که توی گریدویو هم شمسی نمایش داده بشه؟
    اگه سورس یا فانکشنی دارین یا کد(هرچی)
    لطفا بگین چطوری میتونم اینکارو انجام بدم چون برام مهمه که کاربر در گریدویو تاریخ رو شمسی ببینه
    ممنون
    بنده یک فانکشن خیلی قوی دارم اطلاعات تو سرور شمسی میکنم و بعد به کاربر نمایش میدم. و علت خطا بله با Try و غیره میشه جلو خطا گرفت ولی بنده دیگه از دستور Try استفاده نمیکنم و با حالت های مختلف بررسی جلو خطا میگیرم و سعی کردم به هیچ عنوان برنامه خطا نده و سمت Try نره بخاطر Sql Injection و فقط دو بار از دستور Try استفاده کردم اونم داخل Helper هستش چون کل دستورات بنده رو دو تا پرامتر به سمت دیتابیس بررسی میکنه و همون دوتا دستور کل برنامه من هندل میکنه. و خطا باز پیغام نمیدم و خطا داخل دیتابیس ذخیره میکنم و از دیتابیس خطاها رو میبینم چی هستش و مربطو به کجا هستش و همین طور کدام فرم و دستور هستش و وقتی پیدا کردم اون موقع رفع میکنم خطا و نشان نمیدم برنامه چه خطایی داره.

    این مورد یادم رفت بگم مسک بنده آماده هستش یعنی کامپوننت اماده هستش ولی مثل اینکه MaskTestbox یه باگ داره یا من فقط با این باگ برخورد کردم وقتی تاریخ آماده بهش داده میشه بررسی روش انجام نمیشه ولی وقتی دستی بهش داده میشه بررسی روش انجام میشه و یا عددی بهش داده بشه بر حسب نوع استاندارد تاریخ باز با مشکل میخوره و امکان اصلاح نمیده با کامپوننت خود دانت به نوع مختلف تست کردم باگ داشت بخاطر همین معادلش رو میریزه داخل Label وقتی Label ایراد نگیره قبولش دارم و وقتی اون ایراد بگیره کاربر تاریخ پاک میکنه یک بار دیگه وارد میکنه تا Label معادل میلادی شمسی بگیره
    این فانکش مورد نظری که من استفاده میکنم
    http://barnamenevis.org/showthread.p...=1#post2411600

  23. #23

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    بنده یک فانکشن خیلی قوی دارم اطلاعات تو سرور شمسی میکنم و بعد به کاربر نمایش میدم. و علت خطا بله با Try و غیره میشه جلو خطا گرفت ولی بنده دیگه از دستور Try استفاده نمیکنم و با حالت های مختلف بررسی جلو خطا میگیرم و سعی کردم به هیچ عنوان برنامه خطا نده و سمت Try نره بخاطر Sql Injection و فقط دو بار از دستور Try استفاده کردم اونم داخل Helper هستش چون کل دستورات بنده رو دو تا پرامتر به سمت دیتابیس بررسی میکنه و همون دوتا دستور کل برنامه من هندل میکنه. و خطا باز پیغام نمیدم و خطا داخل دیتابیس ذخیره میکنم و از دیتابیس خطاها رو میبینم چی هستش و مربطو به کجا هستش و همین طور کدام فرم و دستور هستش و وقتی پیدا کردم اون موقع رفع میکنم خطا و نشان نمیدم برنامه چه خطایی داره.

    این مورد یادم رفت بگم مسک بنده آماده هستش یعنی کامپوننت اماده هستش ولی مثل اینکه MaskTestbox یه باگ داره یا من فقط با این باگ برخورد کردم وقتی تاریخ آماده بهش داده میشه بررسی روش انجام نمیشه ولی وقتی دستی بهش داده میشه بررسی روش انجام میشه و یا عددی بهش داده بشه بر حسب نوع استاندارد تاریخ باز با مشکل میخوره و امکان اصلاح نمیده با کامپوننت خود دانت به نوع مختلف تست کردم باگ داشت بخاطر همین معادلش رو میریزه داخل Label وقتی Label ایراد نگیره قبولش دارم و وقتی اون ایراد بگیره کاربر تاریخ پاک میکنه یک بار دیگه وارد میکنه تا Label معادل میلادی شمسی بگیره
    این فانکش مورد نظری که من استفاده میکنم
    http://barnamenevis.org/showthread.p...=1#post2411600
    ممنون البته من هم از try استفاده نکردم و چک کردم تاریخ رو
    از فانکشنتون استغاده میکنم و اگه مشکلی بود بهتون خبر میدم
    انشالله حل شه❤️❤️

  24. #24

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    بنده یک فانکشن...
    داداش دمت گرم کار کرد ولی روی 31 اما یکم گیر داره
    آخرین ویرایش به وسیله aliwmhmdi : شنبه 11 خرداد 1398 در 13:23 عصر

  25. #25
    کاربر دائمی آواتار davidrobert
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    sms.payamdizaj.ir
    سن
    27
    پست
    1,179

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط aliwmhmdi مشاهده تاپیک
    داداش دمت گرم کار کرد ولی روی 31 اما یکم گیر داره
    فانکشن ها درست کار میکنن و الان 4 سال روی سیستم مشتری داره بدون مشکل کار میکنه حتی تو برج 2 و 3 و 4 تا حالا مشکلی نبود

  26. #26

    نقل قول: بهترین روش شما برای ذخیره و نمایش تاریخ شمسی با سی شارپ در sql؟

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    فانکشن ها درست کار میکنن و الان 4 سال روی سیستم مشتری داره بدون مشکل کار میکنه حتی تو برج 2 و 3 و 4 تا حالا مشکلی نبود
    داداش من اینطوری نوشتم خیلیم اوکیه و خوب کار میکنه مشکلم حل شد...
    Untitled.jpg

    بدون استفاده از فانکشنی که نوشته بودی

تاپیک های مشابه

  1. سوال: کپی کردن 10 سطر اول یک جدول به یک جدول مشابه در بانک sql؟
    نوشته شده توسط sajadjamalian در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 29 شهریور 1389, 16:03 عصر
  2. مشکل در ریستور کردن فایل در sql؟
    نوشته شده توسط nvshparia در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 11 فروردین 1389, 09:20 صبح
  3. از Access به SQL؟
    نوشته شده توسط kardo.software در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: جمعه 27 شهریور 1388, 11:19 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •