PDA

View Full Version : فرم Data Entry و ایجاد Connection



odiseh
سه شنبه 17 بهمن 1385, 12:56 عصر
سلام

من می خوام بدونم که بری یه فرم Data Entry آیا باید در همه روتین هایی که به SQLConnection لازم هستش یه شی از اون درست کنیم و باهاش کار کنیم بعدشم آخر اون روتین اونو Dispose کنیم یا راه بهتر و اصولی تری هم وجود داره؟

با تشکر

programmermp
سه شنبه 17 بهمن 1385, 13:12 عصر
سلام

من می خوام بدونم که بری یه فرم Data Entry آیا باید در همه روتین هایی که به SQLConnection لازم هستش یه شی از اون درست کنیم و باهاش کار کنیم بعدشم آخر اون روتین اونو Dispose کنیم یا راه بهتر و اصولی تری هم وجود داره؟

با تشکر

سلام

منظورت رو خوب نفهمیدم بیشتر توضیح بده

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

کنی در این مورد بارها بحث شده

می تونی یک متغیر از نوع استرینگ (رشته) درست کنی و توی یک ماژول اون رو قرار بدی و

در همه فرم هات ازش استفاده کنی مثلا کد زیر


dim strcon as string = "Data Source=.;Initial Catalog=mp;Integrated Security=True"


کد بالا رو بزار توی ماژول و هر جا خواستی ازش استفاده کن

nazila_f
سه شنبه 17 بهمن 1385, 15:46 عصر
همان کد بالا را می تونی داخل class هم تعریف کنی ولی یادت باشه که آنرا Public تعریف کنی

miimii
سه شنبه 17 بهمن 1385, 16:25 عصر
سلام.
منظورتون را خوب بیان نکردید.
ولی می توانید یک Component به پروژه اضافه کنید.
بعد در یک module یک متغیر Public از نوع Component تعریف کنید.

Public Module Module1
Public cmp As New Cmponent1
End Module

سپس از کنترل SQLconnection استفاده کنید.کنترل را به جای اینکه در تک تک فرم ها قراردهید بر روی Component قرار داده و connectionStringآن را در Properties مقدار دهی کنید.

به این ترتیب هرجا شما احتایج داشتید تا از SQLconnection باید از طریق component به آن دسترسی پیدا کنید

cmp.sqlconnection

امیدوارم واضح توضیح داده باشم

odiseh
سه شنبه 17 بهمن 1385, 17:07 عصر
ببینید اصلا یه پروژه با چند تا فرم ورود اطلاعات رو فراموش کنید...فکر کنید که فقط یه فرم ورود اطلاعات داریم که توش عملیات جدید و اصلاح و حذف و ..... هست. حالا برای هر کدوم از این عملیات شما توی روتین مربوطه اش یه SQLConnection تعریف می کنید و آخر اون روتین او Object روDispose می کنید یا اینکه راه دیگه بهتری هم وجود داره برای اون فرم ؟

programmermp
سه شنبه 17 بهمن 1385, 17:17 عصر
ببینید اصلا یه پروژه با چند تا فرم ورود اطلاعات رو فراموش کنید...فکر کنید که فقط یه فرم ورود اطلاعات داریم که توش عملیات جدید و اصلاح و حذف و ..... هست. حالا برای هر کدوم از این عملیات شما توی روتین مربوطه اش یه SQLConnection تعریف می کنید و آخر اون روتین او Object روDispose می کنید یا اینکه راه دیگه بهتری هم وجود داره برای اون فرم ؟

سلام

من همین رو توی پست های قبل گفتم sql connection یک شی نیست که بخواهی

با dispose از بین ببریش (البته اونی که خودم نوشتم رو می گم)

شما به جای اینکه از یک شئی مانند اون استفاده کنید خیلی راحت می تونی با همون

متغیر رشته ای که کدش رو نوشتم تو پست قبلی استفاده کنی و نیاز به dispose کردن هم

نداره در مورد کانکشن هم هر دفعه قبل از انجام عملیات اضافه ، حذف و .... باید

open کنی و در آخر کار هم باید Close کنی همین

تمام شد رفت:لبخند:

odiseh
چهارشنبه 18 بهمن 1385, 13:53 عصر
سلام

من همین رو توی پست های قبل گفتم sql connection یک شی نیست که بخواهی

با dispose از بین ببریش (البته اونی که خودم نوشتم رو می گم)

شما به جای اینکه از یک شئی مانند اون استفاده کنید خیلی راحت می تونی با همون

متغیر رشته ای که کدش رو نوشتم تو پست قبلی استفاده کنی و نیاز به dispose کردن هم

نداره در مورد کانکشن هم هر دفعه قبل از انجام عملیات اضافه ، حذف و .... باید

open کنی و در آخر کار هم باید Close کنی همین

تمام شد رفت:لبخند:

دوست عزیز
منظور من اینه که کجا تعریفش میکنی این sqlConnection رو؟

DonetKarvb
چهارشنبه 18 بهمن 1385, 14:16 عصر
با سلام
این SQLConnection یک شی است که ارتباط شما را با بانک برقرار میکند.
من در برنامه ام اگر یک فرم داشته باشم به این صورتی که شما بیان کردید در بالا به صورت عمومی طوری که همه Procedure ها و Function ها به اون دسترسی داشته باشند SQl Connection و چند چیز دیگر نظیر SQL Command و Dataset و... را تعریف میکنم.
و در هرجای برنامه که با کانکشن نیاز داشتم همتجا بازش میکنم و میبندمش. البته این در حالت disconnected هست.
امیدورام منظورتون رو درست گرفته باشم.
در هنگام خروج از برنامه هم Dispose میکنم.
حالا در برنامه هاییکه چند فرم دارند و عموما"با این تیبل ها کار فراوانی دارم می آیم یک کلاس تعریف میکنم و در ان تمام فعالیت های مورد نیازم رو برای هر تیبل مینویسم مثلا" برای تیبل مشخصات افراد یک کلاس مینویسم که بتوان توسط آن از جدول مشخصات افزاد اطلاعات را خواند (Select)کوئری گرفت ،داده ها را ویرایش کرد(Insert ,Delete,Update) و بعد تو برنامه تنها این کلاس و یکی از متدهایش را بر حسب نیاز فراخوانی مکینم در داخل برنامه فقط با یک خط کد Connection باز میشه Query رو اجرا میکنه و نتیجه رو توی دیتاست بر میگردونه.
در مورد حالت دوم پیشنهاد میکنم به سراغ برنامه نویسی چند لایه یا N-tier بروید. استفاده این شیوه برنامه نویسی ،برنامه نویسی و نگهداری از برنامه رو ساده تر میکنه.

odiseh
پنج شنبه 19 بهمن 1385, 08:14 صبح
با سلام
این SQLConnection یک شی است که ارتباط شما را با بانک برقرار میکند.
من در برنامه ام اگر یک فرم داشته باشم به این صورتی که شما بیان کردید در بالا به صورت عمومی طوری که همه Procedure ها و Function ها به اون دسترسی داشته باشند SQl Connection و چند چیز دیگر نظیر SQL Command و Dataset و... را تعریف میکنم.
و در هرجای برنامه که با کانکشن نیاز داشتم همتجا بازش میکنم و میبندمش. البته این در حالت disconnected هست.
امیدورام منظورتون رو درست گرفته باشم.
در هنگام خروج از برنامه هم Dispose میکنم.
حالا در برنامه هاییکه چند فرم دارند و عموما"با این تیبل ها کار فراوانی دارم می آیم یک کلاس تعریف میکنم و در ان تمام فعالیت های مورد نیازم رو برای هر تیبل مینویسم مثلا" برای تیبل مشخصات افراد یک کلاس مینویسم که بتوان توسط آن از جدول مشخصات افزاد اطلاعات را خواند (Select)کوئری گرفت ،داده ها را ویرایش کرد(Insert ,Delete,Update) و بعد تو برنامه تنها این کلاس و یکی از متدهایش را بر حسب نیاز فراخوانی مکینم در داخل برنامه فقط با یک خط کد Connection باز میشه Query رو اجرا میکنه و نتیجه رو توی دیتاست بر میگردونه.
در مورد حالت دوم پیشنهاد میکنم به سراغ برنامه نویسی چند لایه یا N-tier بروید. استفاده این شیوه برنامه نویسی ،برنامه نویسی و نگهداری از برنامه رو ساده تر میکنه.

سلام
روش خیلی خوبی رو پیشنهاد کردید که دو اون به ازاء هر جدول DB یه کلاس درست کنیم و با پروپرتی و متدهای اون کلاس در برنامه کار کنیم اما اگه این DB ما چیزی حدود 300 تا جدول داشته باشه اونوقت به این معنیه که ما حدود 300 تا کلاس باید داشته باشیم. یه کم سخت میشه مدیریت این کلاس ها توی برنامه vb.net مون .مگه نه؟

با تشکر فراوان

leilav_1984
پنج شنبه 19 بهمن 1385, 08:56 صبح
اگه این DB ما چیزی حدود 300 تا جدول داشته باشه اونوقت به این معنیه که ما حدود 300 تا کلاس باید داشته باشیم. یه کم سخت میشه مدیریت این کلاس ها توی برنامه vb.net مون .مگه نه؟

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