ورود

نسخه کامل مشاهده نسخه کامل : چه كار كنم اين دستورات بهتر و كوتاهتر شود؟



hobab1987
16-04-2010, 07:49
سلام دوستان
ببخشيد ميخواستم يك راهنماييم كنيد
اين كد جستجو را بر اساس نام جدولي كه كاربر با COMBOBOX انتخاب ميكند انجام مي دهد
من هر دفعه دستورات تكراري براي جستجو وارد كردم اما نميدونم چه كار كنم كه كوتاهتر شود و جستجوي بهتري داشته باشم؟!! در اينجا دستورات if اول براي بقيه جداول دارد تكرار ميشود !!!

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

misoft
17-04-2010, 08:58
سلام
ماشاالله چقدر زیاده . منم زرنگی کردم همشو نخوندم!
خیلی کارها میشه کرد.
ببین دوست عزیز اینطوری که من فهمیدم کل این کدها داخل یک رویداد(کلیک دکمه) کار میکنند.
بیا اول کار یه کانکشن بساز توی همشون استفاده کن.همینطور SqlCommand و غیره.

ضمنا اگر کد شما فقط برای پر کردن دیتاگریده به جای DataSet از DataTable استفاده کن.
در صورت دیگر نیازی به خط dataGridView1.DataMember = "T_Inf"; نداری

متد Fill نیازی به باز کردن کانکشن و بستن آن نداره ، یعنی خودش انجام میده.

خیلی از قسمت ها رو هم میتونی از Overload های دیگه شون استفاده کنی مثل این:
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "Data Source=.;Initial Catalog=Xadamat;Integrated Security=True";
که میتونی مشخصات سرور رو در همون خط اول داخل پرانتز بنویسی.

یا به جای
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
بنویسی:
SqlCommand cmd = new SqlCommand(cn);

ضمنا به جای این همه If هم میتونی از Switch Case استفاده کنی.
اینا رو انجام بده تا بریم سراغ بقیه کارها.

naser_feb8646
17-04-2010, 20:54
سلام

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


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن این کد از نظر استفاده از منابع سیستم خیلی بهینه نیست برای اینکه هر بار Fill کردن به دیتابیس خیلی زمان می بره برای بهتر شدن شما باید جداولی که نیاز دارید رو یکبار به دیتاست Fill کنید و بعد در خود دیتاست به جستجو و بقیه کارها بپردازید

یاعلی