مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

haditg

عضویت از 1396/10/01

استفاده از try/catch در دستور جستجو

  • چهارشنبه 11 مهر 1397
  • 13:25
تشکر میکنم

تصویر خطاا

با سلام خدمت دوستان.

نحوه استفاده از try/catch رو در دستور زیر رو میخواستم راهنمایی کنید تا برنامه خطای null نده و ازش خارج نشه.


 private void view1_MouseDown(object sender, MouseButtonEventArgs e)
        {
            
                ReportDocument rd = new ReportDocument();

                rd.Load("C:/Users/hadi-TG7/Desktop/hadi project/hadi project/CrystalReport1.rpt");

                using (hadiacc7Entities db = new hadiacc7Entities())
                {

                    if (tar.IsChecked == true)
                    {
                        var q = from c in db.Table_dar

                                where string.Compare(c.date, dataa1.Text) >= 0
                                             &&
                                string.Compare(c.date, dataa2.Text) <= 0

                                select c;
                       
                         rd.SetDataSource(q);

                        rd.SetParameterValue("date", txtpar.Text);
                     
                    }


                    else if (dar.IsChecked == true)
                    {
                        var q = from c in db.Table_dar

                                where (c.dar == txt1.Text)

                                select c;
                        rd.SetDataSource(q);

                        rd.SetParameterValue("date", txtpar.Text);
                    }

                    else if (tda.IsChecked == true)
                    {
                        var q = from c in db.Table_dar

                                where string.Compare(c.date, dataa1.Text) >= 0
                                             &&
                                string.Compare(c.date, dataa2.Text) <= 0
                                &&
                                c.dar == txt1.Text
                                selec

                      t c;
                        rd.SetDataSource(q);
  rd.SetParameterValue("date", txtpar.Text);
                    }

حالا من ترای کش رو کجای این فرمول استفاده کنم تا برنامه خطای null نده.

تصویر خطا نیز ضمیمه میباشد.

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 11 مهر 1397
  • 14:27

خب کد شما ایراد داره که خطای null میده

اول باید کدتون رو درست کنید.

اونهایی رو که میدونید null هستن و نباید پردازشی روشون صورت بگیره با if else جدا کنید.

استفاده از try catch کار درستی نیست.

درکل اگه میخواین اینکار رو بکنین مثل الگوی زیر عمل کنید و بهتر اینه که روی کل فرآیند catch کنه.

                        try
                        {
                            // do somethings
                        }
                        catch(ArgumentNullException ex)
                        {
                            // handle exception
                        }

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)