Skip Navigation Links.

معرفی و نحوه اتصال کنترل AceessDataSource به پايگاه داده

مقدمه :

کنترل AceessDataSource يک کنترل سرور داده است که به طور اختصاصی برای کار با فايل های پايگاه داده Microsoft Aceess طراحی شده است . اين کنترل توانايي اتصال ، دريافت و ارسال اطلاعات به فایل های پايگاه داده Access که پسوند آنها ( .mdb ) است ، را داراست . اين کنترل ها همانند ساير کنترل های سرور داده ديگر ، خود قادر به نمايش اطلاعات دريافتی نيسنتد و برای اين منظور بايستی يک کنترل وب نمايش دهنده اطلاعات همانند کنترل های GridView و یا DetailsView را به اين کنترل متصل کرد ، تا بتوان اطلاعات دريافتی آنها را به صورت جدول وار بر روی صفحات ASP.NET نمايش داد . همچنين به وسیله اين کنترل می توان به ویرایش ، حذف و وارد کردن اطلاعات مورد نظر به پايگاه داده Access متثل به آن بپردازيد .
کنترل AceessDataSource شباهت بسیار زیادی به کنترل SqlDataSource داشته و تقریبا تمام عملکرهای آن در انجام عمليات های مختلف داده ای همچون انتخاب ، ویرایش ، حذف و يا وارد کردن اطلاعات جديد با کنترل SqlDataSource يکسان است . به همين دلیل توصیه می کنم ابتدا مطالب بخش کنترل SqlDataSource را مطالعه اين کنترل بپردازيد .
کنترل های AceessDataSource و SqlDataSource دارای تفاوت هایی نيز هستند . از مهمترين اين تفاوت ها می توان به موارد زير اشاره کرد :

  1. کنترل SqlDataSource فقط برای اتصال به پايگاه داده Microdoft Access طراحی شده است ، اما کنترل AceessDataSource توانایی اتصال به پايگاه داده های Access ، SQL Server , Oracle , OLE DB و OBDC را داراست .
  2. کنترل SqlDataSource برای اتصال به پايگاه داده مورد نظر از يک رشته ارتباطی که در خاصيت ConnectionString آن تعيين شده و شامل اطلاعاتی از قبيل نام و مکان سرور پايگاه داده و شرایط امنيتی اتصال به آن است ، استفاده می کند و برای ايجاد ارتباط حتما به يک سرور SQL Server نياز دارد . اما کنترل AceessDataSource برای اتصال به پايگاه داده به سرور خاصی نیاز ندارد و فقط بایستی نام فایل پايگاه داده و مسیر دسترسی به آن در خاصيت DataFile کنترل ، به طور کامل ذکر کرد . اين کنترل دارای شرايط امنيتی خاص برای اتصال به پايگاه داده نيست . در ادامه به معرفی روش اتصال اين کنترل به پايگاه داده Access را شرح خواهم داد .
  3. کنترل SqlDataSource دارای ضريب امنیتی بسیار بالایی در ارتباط با بانک اطلاعاتی است و به برنامه نويسی سطح بالایی نیاز دارد . اما کنترل AceessDataSource يک کنترل بسیار ساده بوده و دارای ضريب امنيت بسیار پايينی در اتصال به منابع اطلاعاتی است . بنابراين بنايد از اين نوع پايگاه داده و کنترل سرور داده در برنامه های وب حساس و بر روی وب زياد استفاده کرد .

در موارد فوق تفاوت های مهم دو کنترل AceessDataSource و SqlDataSource را بیان کردم . اما به هر حال کنترل AceessDataSource دارای قابليت های بسیار زيادی در کار با فايل های پايگاه داده Access است و از اين جهت نبايد آن را دست کم گرفت . مهمترين حسن اين کنترل سادگی اتصال و کار کردن با آن است و اينکه برای ايجاد ارتباط به سرور خاصی نياز نداريم .


نحوه اتصال يک کنترل AceessDataSource به پايگاه داده و دريافت اطلاعات از آن :

همانطور که گفتم ، کنترل AceessDataSource برای اتصال به پايگاه داده Access مورد استفاده قرار می گيرد . برای اتصال يک کنترل AceessDataSource به پايگاه داده Access ، بایستی نام و مسير کامل دسترسی به پايگاه داده را در خاصيت DataFile کنترل AceessDataSource قرار دهيم . در اين صورت اين کنترل به پايگاه داده تعيين شده و در هر بار باز شدن صفحه به طور خودکار ارتباط خود را به پايگاه داده باز کرده و با بستن صفحه نيز ارتباط خود را قطع می کند . در مثال شماره 1 ، نحوه اتصال يک کنترل AceessDataSource را به يک پايگاه داده Access نشان داده ايم :
مثال : در مثال زير يک کنترل AccessDataSource را به پايگاه داده UniverCity که از نوع Access است متصل کرده ايم . برای اين منظور نام و مسير کامل دسترسی به پايگاه داده را در خاصيت DataFile کنترل قرار داده ايم :

Example
< asp:AccessDataSource   ID="AccessDataSource1"   runat="server"   DataFile="~/App_Data/UniverCity.mdb" >
</asp:AccessDataSource>
کد

مرحله اول در کار با کنترل AccessDataSource ، اتصال به پايگاه داده مورد نظر بود . اما در گام بعدی بايد اطلاعات مورد نظر را که می خواهيم تا کنترل از پايگاه داده استخراج کرده و برای ما ارسال کند را تعيين کنيم . نحوه عملکرد کنترل AccessDataSource در انتخاب و دريافت اطلاعات از پايگاه داده ، کاملا شبيه کنترل SqlDtaSource است . برای تعيين اطلاعاتی که می خواهيم کنترل از پايگاه داده متصل به آن استخراج کند ، بايد يک دستور SQL از نوع Select را در خاصيت SelectCommand کنترل قرار دهيم . نحوه تعيين اين دستور بستگی به ساختار و معماری پايگاه و جدول مورد نظر داشته و اينکه چه فيلدها يا رکوردهایی را می خواهيم از جدول بانک اطلاعاتی انتخاب کنيد . برای آشنایی با نحوه تعريف و استفاده از دستور Select در زبان SQL می توانيد به بخش آموزش دستور Select در زبان SQL برويد . در مثال شماره 2 به آموزش نحوه تعيين دستور Select برای کنترل AccessDataSource پرداخته ايم :
مثال 2 : در مثال زير ابتدا يک کنترل AccessDataSource را به پايگاه داده UniverCity متصل کرده و سپس توسط خاصيت SelectCommand يک دستور Select را برای تعيين اطلاعاتی که می خواهيم تا کنترل از پايگاه داده دريافت کند را تعيين کرده ايم :

Example
< asp:AccessDataSource   ID="AccessDataSource1"   runat="server"   DataFile="~/App_Data/UniverCity.mdb"   SelectCommand="Select Name , Family From Students" >
</asp:AccessDataSource>
کد

نکته امنيتی مهم : چنانچه شما فايل پايگاه داده Access مورد استفاده خود را در پوشه اصلی برنامه وب ( منظور در سايت های وب پوشه اصلی سايت در فضای Host است ) ن نگهداری می کنيد ، آن را به پوشه App_Data انتقال دهيد . انجام اين کار باعث می شود تا فايل پايگاه داده شما به صورت محافظت شده و خصوصی قرار بگيرد . زيرا برنامه ASP.NET اجازه دسترسی مستقيم به محتويات فايل های موجود در پوشه App_Data را از طريق تايپ آدرس آن در نوار آدرس مرورگر نمی دهند و به همين دليل افراد مزاحم و سايرين نمی توانند به فايل پايگاه داده شکا دسترسی داشته باشند و آنها را حذف کرده و یا تغيير دهند .
نکته 2 : جهت اتصال به يک پايگاه داده Access که Password-Protected می باشد و به عبارت ديگر دارای رمز عبور است ، بايد از کنترل SqlDataSource استفاده کنيد . زيرا کنترل AceesDataSource توانایی اتصال به پايگاه داده های رمز دار را ندارند .

Skip Navigation Links.

راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1