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

نام تاپیک: خالی رد کردن تاریخ در دیتابیس

  1. #1
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    خالی رد کردن تاریخ در دیتابیس

    درود دوستان
    میخوام اینو درست کنم ولی نمی دونم تیکه کد تاریخ رو خالی بفرستم توی دیتابیس یا مثلا چطوری میشه تاریخ همین روز رو درون دیتابیس درج کنم
    الان اگر توجه کنید میبینید که من String رو تونستم خالی بفرستم توی دیتابیس ولی Date رو نمیدونم چطوری بنویسم





    کد من:


    public bool InsertHesab() // افزودن بخش حساب
    {
    string command = @"INSERT into [Hesab] (Dasteh_Hesab, Mozo_Hesab, Baha_Hesab, Tarikh_Hesab, Tozihat_Hesab, Contact_ID) " +
    "values (@Dasteh_Hesab, @Mozo_Hesab, @Baha_Hesab, @Tarikh_Hesab, @Tozihat_Hesab, @Contact_ID)";

    List<SqlParameter> parametersList = new List<SqlParameter>();

    var Dasteh_HesabParameter = new SqlParameter("@Dasteh_Hesab", string.IsNullOrEmpty(this.Dasteh_Hesab) ? string.Empty : this.Dasteh_Hesab);
    var Mozo_HesabParameter = new SqlParameter("@Mozo_Hesab", string.IsNullOrEmpty(this.Mozo_Hesab) ? string.Empty : this.Mozo_Hesab);
    var Baha_HesabParameter = new SqlParameter("@Baha_Hesab", string.IsNullOrEmpty(this.Baha_Hesab) ? string.Empty : this.Baha_Hesab);
    //var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab", this.Tarikh_Hesab);

    var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab", Convert.ToDateTime(Tarikh_Hesab));
    var Tozihat_HesabParameter = new SqlParameter("@Tozihat_Hesab", string.IsNullOrEmpty(this.Tozihat_Hesab) ? string.Empty : this.Tozihat_Hesab);
    var idParameter = new SqlParameter("@Contact_ID", ID);

    parametersList.Add(Dasteh_HesabParameter);
    parametersList.Add(Mozo_HesabParameter);
    parametersList.Add(Baha_HesabParameter);
    parametersList.Add(Tarikh_HesabParameter);
    parametersList.Add(Tozihat_HesabParameter);
    parametersList.Add(idParameter);

    var db = new DataAccess.DatabaseManager();
    var result = db.ExecuteCommand(command, parametersList);
    return result;
    }






    مشخصات برنامه:
    ویژوال استودیو
    سی شارپ
    دیتابیس sql
    آخرین ویرایش به وسیله booysusa : دوشنبه 20 خرداد 1398 در 22:27 عصر

  2. #2

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    چک کنید اگر تاریخ وارد نشده بود null ارسال کنید و در غیر اینصورت تاریخ را. بستگی داره Tarikh_Hesab چی هست.
                var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab", Tarikh_Hesab == null ? DBNull.Value : Convert.ToDateTime(Tarikh_Hesab));

  3. #3
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    چک کنید اگر تاریخ وارد نشده بود null ارسال کنید و در غیر اینصورت تاریخ را. بستگی داره Tarikh_Hesab چی هست.
                var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab", Tarikh_Hesab == null ? DBNull.Value : Convert.ToDateTime(Tarikh_Hesab));
    مهندس این خطا رو میده
    میخوام هیچی تو دیتابیس ذخیره نشه ، منظورم Null هست، باید هیچی تو دیتابیس ذخیره نشه

  4. #4

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    DBNull.Value را به جاش null بزارید

  5. #5
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    DBNull.Value را به جاش null بزارید
    ببخشید بابت طولانی شدن این سوال مبتدیانه
    این خطا رو میده


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

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    پست بالا رو دقیق دقت کنید قسمت اول شرط رو ننوشتید
    Tarikh_Hesab == null ? null  : Convert.ToDateTime(Tarikh_Hesab)
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  7. #7
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    پست بالا رو دقیق دقت کنید قسمت اول شرط رو ننوشتید
    Tarikh_Hesab == null ? null  : Convert.ToDateTime(Tarikh_Hesab)

    اون null null رو قبلا انجام دادم بازم نشد
    این خطا رو میده






    مهندس لینک زیر رو مطالعه میکنید، ببینید چیزی دستگیرتون میشه یا نه؟
    لینک
    آخرین ویرایش به وسیله booysusa : چهارشنبه 22 خرداد 1398 در 19:02 عصر دلیل: تکمیل توضیحات

  8. #8

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    من برای تاریخ میلادی اگه تاریخ نباشه موقع ذخیره این نوشتم خوب هم عمل میکنه چه برای نمایش معادل این نوشتم چه ذخیره و یا ویرایش
    insert Dates values (CASE WHEN @Dates IS NULL    THEN Getdate() WHEN Dates IS NOT NULL THEN @Dates    END)   from table1

  9. #9
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    من برای تاریخ میلادی اگه تاریخ نباشه موقع ذخیره این نوشتم خوب هم عمل میکنه چه برای نمایش معادل این نوشتم چه ذخیره و یا ویرایش
    insert Dates values (CASE WHEN @Dates IS NULL    THEN Getdate() WHEN Dates IS NOT NULL THEN @Dates    END)   from table1
    فعلا این نوع کدنویسی شما رو بلد نیستم متاسفانه
    (یه جورایی تو کدنویسی زبان سی شارپ مبتدی ایم)
    آخرین ویرایش به وسیله booysusa : چهارشنبه 22 خرداد 1398 در 22:13 عصر

  10. #10

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    null را به object تبدیل کنید
    ... ? (object) null : ...

    یا اینکه کلا با if ... else شرط را بررسی و مقدار پارامتر را ست کنید.

  11. #11
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    null را به object تبدیل کنید
    ... ? (object) null : ...

    یا اینکه کلا با if ... else شرط را بررسی و مقدار پارامتر را ست کنید.
    سپاسگزارم
    درست شد

    var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab",  Tarikh_Hesab == null ? (object)null : (Tarikh_Hesab));




    سوال اول
    فقط الان این خطا رو میده
    با وجود این خطا ولی اطلاعات در دیتابیس ذخیره میشن

    و سوال دومم
    من میدونم چطوری تاریخ شمسی رو در دیتابیس ذخیره کنم و به خوبی هم تاریخ شمسی رو در گرید ویوو نمایش میدم وکلا با تبدیل تاریخ مشکلی ندارم، ولی نگران هزینه کرد آینده هستم
    مهندس بنظرتون از String برای تاریخ استفاده کنم یا همین Date استفاده کنم؟

    آخرین ویرایش به وسیله booysusa : پنج شنبه 23 خرداد 1398 در 12:12 عصر دلیل: تکمیل توضیحات

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

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    سپاسگزارم
    درست شد

    var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab",  Tarikh_Hesab == null ? (object)null : (Tarikh_Hesab));




    سوال اول
    فقط الان این خطا رو میده
    با وجود این خطا ولی اطلاعات در دیتابیس ذخیره میشن

    و سوال دومم
    من میدونم چطوری تاریخ شمسی رو در دیتابیس ذخیره کنم و به خوبی هم تاریخ شمسی رو در گرید ویوو نمایش میدم وکلا با تبدیل تاریخ مشکلی ندارم، ولی نگران هزینه کرد آینده هستم
    مهندس بنظرتون از String برای تاریخ استفاده کنم یا همین Date استفاده کنم؟

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

  13. #13
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    خطا مشخصه میگه تاریخ باید بین اون تاریخ های مشخص شده در خطا باشه
    قبل از ایجاد تاپیک جستجو کنید
    قبلاً گفته شده که توصیه نمیشه تاریخ شمسی رو در نوع date دیتابیس ذخیره کرد میتونید بصورت میلادی ذخیره و در برنامه تبدیل کنید اگر از nvarchar هم استفاده کنید مشکلی پیش نمیاد
    سپاسگزارم مهندس
    nvarchar استفاده کردم ، در آینده مشکلی برای کار بر روی تاریخ پیش نمیاد؟
    مثلا گزارش گیری و یا جستجو بین دوتاریخ و....

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

    نقل قول: خالی رد کردن تاریخ در دیتابیس

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

  15. #15

    نقل قول: خالی رد کردن تاریخ در دیتابیس

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

  16. #16
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    اگه گزارش خاص باشه چرا مشکل پیش میاد برای جای که برنامه نوشته بودم همه تاریخ ها شمسی ذخیره میکردم در nvarchar ولی حالت های مختلف گزارش نموداری بر حسب تاریخ برحسب بلوغ، جنسیت که هر لحظه به صورت نموداری بر حسب سال نشان بده از کدام سال یا ماه و یا هفته یا روز نشان بده امار نموداری چون تاریخ شمسی بود برنامه بنده با مشکل خورد بخاطر همین مجبور شدم برنامه در حال کار بود و کلی اطلاعات داشت سر گزارشات مشتری همه فیلد ها شمسی به میلادی در یک دیتابیس جدید قرار بدم و موقع انتقال از دیتابیس اول به دوم کلی فقط Script نویسی کردم که تو یک ثانیه همه اطلاعات از دیتابیس قدیم به دیتابیس جدید بدم تا برنامه با تاریخ میلادی ثبت بشه و گزارشات میلادی بررسی کنه و تاریخ شمسی نشان بده. بعضی موقع واقعا تاریخ شمسی دست پا آدم میبنده ولی میلادی چون استانداردش هستش نه با مشکل بر نمیخورید تو گزارشات
    برای اینکه به مشکل نخورم، صفحه اول که ارسال اطلاعات بر پایه تاریخ شمسی به میلادی هست رو Date قرار میدم چون به مشکل بر نمی خورم و همیشه یک تاریخ هست که دیتابیس ارسال شود، و برای باقی صفحات غیرمهم بجای استفاده از Date از nvarcvar استفاده می کنم
    سپاس بابت راهنمایی همه مهندسین عزیز

  17. #17

    نقل قول: خالی رد کردن تاریخ در دیتابیس

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    برای اینکه به مشکل نخورم، صفحه اول که ارسال اطلاعات بر پایه تاریخ شمسی به میلادی هست رو Date قرار میدم چون به مشکل بر نمی خورم و همیشه یک تاریخ هست که دیتابیس ارسال شود، و برای باقی صفحات غیرمهم بجای استفاده از Date از nvarcvar استفاده می کنم
    سپاس بابت راهنمایی همه مهندسین عزیز
    شما میتوانید دیتابیس تاریخ ها میلادی قرار بدید همه رو و توسط Function قبل از ذخیره تاریخ شمسی تبدیل کنید به میلادی و موقع نمایش قبل از نمایش تاریخ میلادی به شمسی تبدیل کنید توسط اسکیول سرور.مشکلی که توسط ویندوز 10 به وجود امده چون ویندوز 10 و سرور های جدید تاریخ اش شمسی و تو برنامه چه تحت شبکه و یا Single موقع پاس دادن تاریخ میلادی مستقیم اگه ویندوز 10 باشه و شما بگید 2019-01-01 اسکیول سرور فکر میکنه دارید میگید تاریخ 2019-01-01 شمسی هستش پس خود اسکیول سرور تبدیل به میلادی کنه که تاریخ میشه 2659-05-01 میشه گفت 600 سال تاریخ میبره جلو چه مستقیم و یا با برنامه بفرستید تاریخ میلادی در ویندوزی که تاریخ شمسی داره اتوماتیک خودش تبدیل تاریخ انجام میده ولی وقتی از Function استفاده کنید مشکلی پیش نمیاد این مشکل روی نوع فیلد Date هستش و تاریخ شمسی سیستم.

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

  1. پاسخ: 2
    آخرین پست: پنج شنبه 11 تیر 1394, 16:11 عصر
  2. تبدیل دیتابیس فاكس پرو (FoxPro) به دیتابیس (SQL SERVER 2008) با پشتیبانی از زبان فارسی
    نوشته شده توسط majid_darab در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 9
    آخرین پست: سه شنبه 15 فروردین 1391, 16:14 عصر
  3. پاسخ: 1
    آخرین پست: چهارشنبه 02 شهریور 1390, 14:36 عصر
  4. پاسخ: 0
    آخرین پست: چهارشنبه 20 بهمن 1389, 16:56 عصر
  5. پاسخ: 2
    آخرین پست: چهارشنبه 17 آذر 1389, 20:08 عصر

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

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