تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 38 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : طلب علم بر هر انسانی واجب است ،همانا خداوند علم آموزان را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و بیست و پنجم


بنام حضرت دوست که هر چه داریم از اوست.

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و بیست و پنجم


استفاده از Command Builder براي ايجاد دستورات SQL ديگر :

با استفاده از خاصيت SelectCommand موجود در كلاس DataAdapter مي توانيم داده هاي مورد نياز در برنامه را از بانك اطلاعاتي استخراج كرد ه و در يك DataSet در حافظه قرار دهيم.

سپس در طول برنامه مي توانيم بـه كـاربر اجـازه دهيم تا تغييرات مورد نظر خود را در داده هاي موجود در حافظه ايجاد كرده و بعد از اتمام آنها، اين تغييرات را به داده هاي موجود در بانك اطلاعاتي منعكس كنيم.

براي اين كار لازم است كه دستورات SQL مـورد نيـاز بـراي درج، حـذف و يـا ويـرايش داده هـاي دريافتي را به كلاس DataAdapter اضافه كنيم تا اين كلاس بتواند با استفاده از اين دستورات، تغييـرات ايجـاد شـده را در بانك اطلاعاتي وارد كند.

اما براي ايجاد اين دستورات لازم است كه به زبان SQL تسلط بيش تري داشته باشيم.

خوشبختانه روش ساده تري هم بـراي انجـام اين كار وجود دارد و آن استفاده از كلاس CommandBuilder است كه مي تواند با توجه به دسـتور SELECT اي كـه براي DataAdapter وارد كرده ايم، دستورات INSERT ،UPDATE و نيز DELETE مناسب توليد كند .

قطعه كـد زير نحوه ي استفاده از اين دستور را نمايش مي دهد .

با استفاده از اين كلاس، دستورات لازم براي منعكس كردن تغييرات ايجاد شده از DataSet بـه بانـك اطلاعـاتي بـه صـورت اتوماتيك نوشته مي شود.

در ادامه ي دوره با نحوه ي انجام اين كار بيشتر آشنا خواهيم شد، اما فعلا بهتر است ببينيم كه چگونه مي توان داده ها را از يك بانك اطلاعاتي استخراج كرده و در يك DataSet در حافظه قرار داد.

متد Fill:

بـــا اســـتفاده از متـــد Fill در كـــلاس DataAdapter مـــي توانيـــد دســـتور SQL موجـــود در خاصـــيت SelectCommand را در بانك اطلاعـاتي اجـرا كـرده، و سـپس داده هـاي برگـشتي از اجـراي ايـن دسـتور را درون يـك DataSet در حافظه قرار دهيد.

البته قبل از استفاده از اين متد، بايد شيئ اي از نوع DataSet ايجاد كنيم.

حال كه شيئ DataSet و نيز DataAdapter مورد نياز را ايجاد كرديم، مي توانيم با استفاده از متـد Fill داده هـا را از بانك اطلاعاتي در DataSet قرار دهيم.

متد Fill نيز همانند بسياري از متد هاي ديگر داراي نـسخه هـاي گونـاگوني است، اما يكي از پر كاربرد ترين آنها به صورت زير مورد استفاده قرار مي گيرد :

پارامتر DataSet در اين متد، مشخص كننده ي نام DataSet اي اسـت كـه بايـد داده هـا در آن قـرار بگيرنـد.

پـارامتر String نيز نام جدولي را مشخص مي كند كه داده ها در DataSet درون آن جدول قرار مي گيرنـد.

DataSet هـا نيز مي توانند همانند بانكهاي اطلاعاتي شامل چندين جدول مختلف از اطلاعات باشند.

بنابراين هنگامي كه مـي خـواهيم داده اي را در آن قرار دهيم بايد مشخص كنيم كه نام جدولي كه داده ها در آن قرار مي گيرند چه بايد باشد؟

در اين جا مي توانيم هـر نـام كـه تمايل داشته باشيم براي جدول انتخاب كنيم، اما بهتر است همواره از اسامي جداولي استفاده كنيم كه داده ها از آن گرفته شده اند .

به اين ترتيب درك برنامه بسيار راحت تر خواهد بود .

قطعه كد زير يك پروسيجر ذخيره شده در بانك اطلاعاتي را اجرا كرده و نتايج برگشتي از آن را به وسيله ي متد Fill در جدولي به نام authors در objDataSet قرار مي دهد:

متد Fill براي اتصال به بانك اطلاعاتي از شـيئ Connection اي كـه در خاصـيت SelectCommand قـرار دارد استفاده مي كند.

اين متد ابتدا بررسي مي كند كه اتصال اين Connection به بانك اطلاعـاتي برقـرار اسـت يـا نـه .

در صورتي كه اتصال برقرار باشد، متد Fill داده هاي مورد نياز را از بانك اطلاعاتي بدست آورده، اما اتـصال Connection با بانك اطلاعاتي را قطع نمي كند.

اگر هم ارتباط شيئ Connection با بانك اطلاعاتي قطع باشد، متد Fill با فراخواني متد Open ارتباط را برقرار كرده و پس از بدست آوردن اطلاعات مورد نياز، متد Close را فراخواني مي كند تا اتصال به بانـك اطلاعاتي مجدداً قطع شود.

به اين ترتيب داده ها از بانك اطلاعاتي درون حافظه قرار مي گيرند و مي توانيد به صورت مستقل آنها را تغيير دهيد.

دقت كنيد كـه ابتداي كلاس DataSet كلمه ي Sql وجود ندارد.

دليل اين مورد هم ايـن اسـت كـه ايـن كـلاس متعلـق بـه فـضاي نـام System.Data.Sqlclient نيست بلكه در فضاي نام System.Data قرار دارد.

به عبارت ديگـر كـلاس DataSet به سرويس دهنده ي اطلاعاتي خاصي از قبيـل SqlClient و يـا OleDb تعلـق نـدارد و وظيفـه ي آن نگهداري اطلاعات بدست آمده (به هر نحوي) در حافظه است.

هنگامي كه اطلاعات را در حافظه قرار داديم ديگر نيازي نيست بدانيم كه اين اطلاعات از كجا بدست آمده اند (تا زماني كه بخواهيم آنها را دوباره در بانك اطلاعاتي قرار دهيم ).

با ادامه دوره در قسمت دویست و بیست و ششم همراه وبسایت بزرگ لندلرن باشید.

علاقه مندان به آموزش های طراحی وب در کانال آپارات وبسایت به نشانی aparat.com/landlearn_ir عضو شوند.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ