PDA

View Full Version : سوال در مورد نحوه ایجاد دیتاست



amirkhan1
یک شنبه 22 دی 1392, 08:32 صبح
سلام و احترام به شما بزرگواران
مدتهاست برنامه نویسی با VB.net را انجام میدهم .اما مساله ای در خصوص نحوه کاربرد دیتاست در Database Programming برایم حل نشده ، یعنی اینکه نحوه تعریف و کاربرد درست آنرا در سطح پروژه نمیدانم . دوستان عزیزی که تجربه برنامه نویسی مبتنی بر دیتابیس در سطح پروژه دارند ، لطفا کمک نمایند
بذارین جزئیات ایرادم رو شرح بدم:
فرض کنید یک پروژه متوسط با 10 فرم می خواهیم بسازیم و هر کدام از این فرمها با بخشی از دیتابیس و تیبلهای آن سر وکار دارد . در جای جای پروژه لازمه که برای تیبلهای مختلف select با شرطهای متنوع بنویسم . که مثلا در یک قسمت برای استخراج بخشی از دیتا ،به صورت زیر می نویسم (فرض کنید کانکشن استرینگ قبلا در سطح public تعریف و مقداردهی شده)

dim ds as new dataset
dim da as new OleDbDataAdapter("select * from tb1 where id>10", Conn)
conn.open
da.fill(ds,"tb1")
conn.close
حالا در قسمت دیگر (procedure دیگر)و برای استخراج بخشی دیگر از دیتا از همان تیبل tb1 دوباره مجبوریم دیتا ست رو تعریف کنیم تا بتوانیم select بزنیم

dim ds as new dataset
dim da as new OleDbDataAdapter("select * from tb1 where id=0", Conn)
conn.open
da.fill(ds,"tb1")
conn.close
سوال و گیر بنده در حقیقت روی تعریف کردن هر بار دیتاست در هر procedure هست ، اینکه در هر پراسیجر یک بار دیتاست را تعریف کنیم تا بتوانیم select های همان پراسیجر را اجرا کنیم ، به نظر میاد از نظر تکنیکهای برنامه نویسی و بهینه کردن برنامه و کدها کار درستی نباشد. گاهی ممکن است در یک فرم به تناسب پراسیجرهایی که در آن پراسیجرها می خواهیم select بنویسیم ، می بایست دیتا ست نیز تعریف کنیم و در انتها می بینیم که مثلا در یک فرم چندین بار دیتاست تعریف شده است . اگر ماهیتا دیتاست را معادل دیتابیس فرض کنیم ، بطور نزدیک به یقین این نحوه تعریف و کاربرد دیتاست در سطح فرم و پروژه درست نباشد .
لذا دوستانی که تجربه کاملی در این خصوص دارند لطفا راهنمائی فرمایند.
با تشکر

Hossis
یک شنبه 22 دی 1392, 09:33 صبح
شما دیتاست رو در سطح یک ماژول و به صورت فریند تعریف کنید در این صورت نیازی نیست در هر فرمی مجدد تعریف کنید راه دیگر این هست که شما دستورات مربوط به بانک داده رو اعم از دریافت یا ثبت اطلاعات رو در یک کلاس مجزا متمرکز کرده و از فرم های مختلف به اون دستورات ارجاع بدید تا هم تعریف ها منسجم تر و خلاصه تر بشه و هم از نوشتن کدهای تکراری جلوگیری بشه نمونه این کلاس رو من در یک ماژول انجام داده و بارها و بارها در این انجمن مطرح کردم. موفق باشید.

amirkhan1
یک شنبه 22 دی 1392, 09:46 صبح
شما دیتاست رو در سطح یک ماژول و به صورت فریند تعریف کنید در این صورت نیازی نیست در هر فرمی مجدد تعریف کنید راه دیگر این هست که شما دستورات مربوط به بانک داده رو اعم از دریافت یا ثبت اطلاعات رو در یک کلاس مجزا متمرکز کرده و از فرم های مختلف به اون دستورات ارجاع بدید تا هم تعریف ها منسجم تر و خلاصه تر بشه و هم از نوشتن کدهای تکراری جلوگیری بشه نمونه این کلاس رو من در یک ماژول انجام داده و بارها و بارها در این انجمن مطرح کردم. موفق باشید.
ضمن تشکر از پاسخ شما دوست عزیز و محترم
ممنون میشم لینک اون ماژول رو قید بفرمائید

Hossis
یک شنبه 22 دی 1392, 11:48 صبح
این جا رو ببینید http://barnamenevis.org/showthread.php?436214