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

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

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

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

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

حضرت محمد (ص) : ز گهواره تا گور دانش بجوی .

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


ای نام تو بهترین سرآغاز
بی نام تو نامه کِی کنم باز.

سلام به همه لندلرنی های عزیز.
درخدمتتون هستیم با

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


اتصال داده ها:

كنترل DataGridView بهترين كنترل براي نمايش تمام داده ها در فرم برنامه است.

اين كنترل علاوه بر اين قابليت، مـي تواند به راحتي به كاربر اجازه دهد كه داده ها را حذف و يا ويرايش كند و يا داده هاي جديدي را در جدول وارد كند.

اما با اين وجـود ممكن است در شرايط بخواهيد در هر لحظه فقط يك سطر از داده ها را در برنامه نمايش دهيد.

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

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

سپس قسمتي را در فرم برنامه طراحي كنيد كه به وسـيله آن بتوان در بين سطر هاي اطلاعات حركت كرد.

بنابراين براي انجام اين كار لازم است كه درگير اموري مانند اتصال كنتـرل هـاي ساده به داده ها و نيز مديريت اين اتصالات شويم.

در بحث راجع به اتصال داده ها، منظور از كنترل هاي ساده كنترل هايي است كه در هر لحظه فقط مي توانند مقـدار يـك داده را
در خود نگهداري كنند، براي مثال مانند TextBox ،CheckBox ،RadioButton و يا كنترل هايي از اين قبيـل .
كنترل هايي مانند comboBox ،ListBox و يا DataGridView كه در هر لحظه مي توانند بيش از يك آيتم از
داده هاي موجود در برنامه را نمايش دهند به عنوان كنترلهاي ساده در نظر گرفته نمي شوند .

 CurrencyManager و BindingContext :

هر فرم داراي شيئ اي از نوع BindingContext است كه اتصالات كنترل هاي درون فرم را مديريت مي كند.

بنـابراين به علت اينكه فرم برنامه ي شما به صورت دروني داراي چنين شيئ اي است، نيازي نيست كه آن را در كد ايجاد كنيد.

شيئ BindingContext در حقيقت يك مجموعه از اشيا از نوع CurrencyManager را مـديريت مـي كنـد.

وظيفه ي CurrencyManager نيز اين است كه بين كنترل هايي كه بـه منبـع داده اي (مـثلا DataSet ) متـصل هستند و منبع داده اي، و نيز اين كنترل ها با ديگر كنترل هايي كه در فرم به همان منبع داده اي متـصل هـستند همـاهنگي برقـرار
كند.

به اين ترتيب مي توان مطمئن شد كه تمام اين كنترل ها در فرم در حال نمايش داده هاي موجود در يك سـطر هـستند.

شـيئ CurrencyManager مـي توانـد ايـن همـاهنگي را بـين كنتـرل هـا و منـابع داده اي مختلفـي ماننـد DataSet ، DataTable ،DataView و يا DataSetView ايجاد كند.

هر زمان كه يك منبع داده اي جديد به فـرم برنامـه اضافه كنيد، يك شيئ CurrencyManager جديد نيز به صورت اتوماتيك ايجاد مي شود.

به اين ترتيـب كـار بـا كنتـرل هاي متصل به يك منبع داده اي در فرم برنامه بسيار ساده خواهد شد.

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

بـه ايـن ترتيـب بـه وسـيله ي ايـن متغييـر مـي توانيـد بـه CurrencyManager مـورد نظـر خـود در BindingContext دسترسي داشته باشيد و به وسيله ي آن نمايش داده ها را بر روي فرم كنترل كنيد.

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

بـراي ايـن كــار ابتــدا يــك متغييــر از كــلاس CurrencyManager ايجــاد مــي كنــيم.

ســپس مقــدار ايــن متغييــر را برابــر بــا CurrenyManager مربوط به منبع داده اي objDataSet در BindinContext قرار مي دهـيم .

البتـه دقت كنيد شيئ اي كه در BindingContext ذخيره مي شود از نوع CurrencyManager نيـست و بايـد بـا استفاده از عملگر () آن را به صورت صريح به CurrencyManager تبديل كنيم :

بعد از اينكه با استفاده از اين كد، ارجاعي به اين شيئ ايجاد كرديم مي توانيم با استفاده از خاصيت Position موقعيت ركـورد جاري را كنترل كنيم.

براي مثال كد زير موقعيت ركورد جاري را يك واحد افزايش مي دهد:

و يا دستور زير باعث مي شود كه تمام كنترل هاي ساده اي كه به objDataSet متصل شده اند، اطلاعـات ركـورد قبلـي را نمايش دهند :

همچنين براي نمايش اطلاعات مربوط به اولين ركورد در objDataSet مي توانيم از كد زير استفاده كنيم :

با ادامه دوره در قسمت دویست و سی و دوم همراه باشید.


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

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

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

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

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

soroush کانال سروش

کانال آی گپ