اتصال کنترل SqlDataSource به منبع داده

مقدمه :

هما نطور که در بخش قبل گفتيم ، کنترل SqlDataSource برای اتصال به انواع مختلفی از منابع داده ای به کار می رود .برای ايجاد ارتباط بايد يک ConnectionString مناسب و يک دستور Select را در خاصيت SelectCommand کنترل تعيين کنيد . سپس می توانيد اين کنترل را به همراه يک يا چند کنترل وب ديگر که از خاصيت DataSourceID پشتيبانی می کنند ، برای نمايش و ويرايش اطلاعات استفاده کنيد .


نحوه ايجاد يک ConnectionString برای يک کنترل SqlDataSource :

برای ايجاد يک ConnectionString مناسب می توان از 2 روش مختلف زير استفاده کرد :

  1. استفاده از محيط کدنویسی : در اين حالت کاربر به صورت مستقيم کدهای لازم را در قسمت های مربوط تايپ می کند . لازمه اين روش آشنایی کامل به نحوه کدنويسی ConnectionString و انواع خواص مربوط به آن است .
  2. استفاده از محيط طراحی ( Design ) نرم افزار Microsoft Visual Studio 2005 : در اين حالت ، کاربر از محيط طراحی نرم افزار استفاده کرده و با بهره گيری از منوها و امکانات Visual موجود ، اقدام به ايجاد ConnectionString کرده و ديگر نياز به کد نويسی مستقيم ندارد . همزمان با انجام عمليات در محيط طراحی ، برنامه به طور خودکار کدهاب متنی لازم را توليد کرده و در جاهای مناسب قرار می دهد .

در ادامه به معرفی هر 2 روش می پردازيم .

1 ) روش استفاده از محيط کدنويسی :

  1. فايل * web.config را از منوی Solution Explorer در فهرست اصلی وب سايت خود باز کنيد . در صورتی که اين فايل وجود ندارد ، يک نمونه از آن ايجاد کنيد .
    فايل web.config : فايل web.config ، يک فايل سیستمی است که هر سايت ASP.Net ، يک نمونه از آن را بايستی داشته باشد . اگر سايت خود را با استفاده از نرم افزار Visual Studio ايجاد کنيد ، اين برنامه به طور خودکار يک نمونه از فايل را برای سايت شما ايجاد می کند . اين فايل شامل اطلاعات مهم و کلی مربوط به نتظيمات مختلف سايت برای قرار گرفتن بر روی وب است .
  2. در تگ < Configuration > ، تگ < ConnectionString > را باز کنيد . چنانچه اطن تگ نيز وجود ندارد ، يک نمونه از آن را ايجاد کنيد .
  3. در درون تگ < ConnectionString > يک تگ جديد < add > را ايجاد کرده و در درون بدنه تگ ( نه بين تگ باز و بسته آن) موارد زير را تعيين کنيد :
    • Name : به وسيله اين خاصيت يک نام منحصر به فرد را برای ConnecitonString خود انتخاب کنيد . از اين نام می توانيد برای دسترسی و اشاره به ConnectionString از هر کجای برنامه استفاده کنيد . برای نمونه در مثال زير نام SampleConnection را برای ConnectionString خود انتخاب کرده ايم .

      Name = " SampleConnection " کد
    • ConnectionString : اين خاصيت در واقع همان رشته ارتباطی است و شامل اطلاعات کليدی درباره ارتباط است . در اين خاصيت بايد نام سرور پايگاه داده ( Data Source ) ، نام پايگاه داده مورد نظر بر روی سرور ( Initial Catalog ) و تنظيمات امنيتی (Integrated Secutrity ) برای ايجاد ارتباط را تنظيم کرد . برای مثال به کد زير دقت کنيد . در کد زير به پايگاه داده UniverCity بر روی سرور Developer-PC متصل شده ايم . در اين حالت از امکان شناسایی windows برای ارتباط استقاده کرده ايم . بنابراين مقدار خاصيت Integrated Secrity آن بر روی True تنطيم شده است .
      نکته مهم : نام سرور بايد نام کامپيوتری باشد که پايگاه داده بر روی آن قرار دارد . چنانچه پايگاه داده بر روی کامپيوتر خودتان قرار دارد ، نام آن را به عنوان مقدار Data Source قرار دهيد و به جاي آن هم می تونيد کاراکتر . ( نقطه ) را قرار دهيد .

      ConnectionString = " Data Source = Developer-PC ; Integrated Security = True ; Initial Catalog = UniverCity " کد
    • ProvideName : اين خاصيت کلاس ADO.NET مورد استفاده را برای ايجاد ارتباط کنترل نعيين می کند . برای مثال ، مقدار اين خاصيت برای اتصال به پايگاه داده SQL Server بايد روی مقدار System.Data.SqlClient تنظيم شود . به مثال زير دقت کنيد :

      ProvideName = " System.Data.SqlClient " کد
  4. در نهايت باي قسمت < ConnectionStrign > فايل web.config شما به صورت زير باشد . در تيجه فايل web.config را برای اعماا تغييرات ايجاد شده ، ذخيره کنيد .

    Example
    <connectionstrings>
       < add   name="SampleConnection"  connectionString="Data Source= Developer-PC ;Initial Catalog=UniverCity;Integrated Security=True"   providerName="System.Data.SqlClient"   />
    </connectionstrings>
    کد

اکنون شما دارای يک ConnectonString مناسب برای ايجاد ارتباط يک کنترل SqlDataSource به يک پايگاه داده SQL Server را ايجاد کرده ايد . با استفاده از نام اين ConnectionString می توانيد آن را با يک يا چندين کنترل SqlDataSource برای ايجاد ارتباط با پايگاه داده تعيين شده استفاده کنيد . نحوه استفاده از اين ConnectioString برای ايجاد ارتباط به صورت زير است :

  1. يک کنترل SqlDataSourec را بر روی صفحه ASP.NET مورد نظر خود قرار دهيد . اين کنترل در منوی Toolbox و در قسمت Data قرار دارد .
  2. در درون بدنه تگ کنترل SqlDataSource موارد زير را تعيين کنيد :
    • SelectCommand : اين خاصيت تعيين کننده دستور SQL مورد نظر از نوع Select است ، که برای فراخوانی اطلاعات مورد نظر شما از جدول مربوطه در پايگاه داده مورد استفاده قرار می گيرد . نحوه تنظيم و استفاده از اين خاصيت را در بخش بعدی به طور کامل تشريح می کنيم . برای نمونه در مثال زير يک دستور Select را برای دريافت اطلاعات تعيين کرده ايم :

      SelectCommand = " Select Name From Student " کد
    • ConnectionString : مقدار اين خاصيت را با نام ConnectionString مورد نظر خود که قبلا آن را در فايل web.config ايجاد کرده ايد ، مقدار دهی کنيد . برای نمونه در مثال زير مقدار آن را با نام ConnectionSting ی که در بالا ايجاد کرده بوديم ، مقدار دهی می کنيم . توجه کنيد که از فرمت زير برای مقدار دهی خاصيت ConnectionString استفاده کنيد :

      ConnectionString = " < %$ ConnectionStrings:SampleConnection % > " کد

در نهايت کد کنترل SqlDataSource شما بايد به صورت زير باشد :

Example
< asp:SqlDataSource   runat="server"   ID="SqlControl1"  ConnectionString = " < %$ ConnectionStrings:SampleConnection % > "   SelectCommand="Select Name from Students " >
< /asp:SqlDataSource >
کد

اکنون کنترل SqlDataSource شما با استفاده از ConnectionString مورد نظر شما به پايگاه داده متصل شده است و امکان اين وجود دارد که با ترکيب آن با هر کنترل وب ديگر به نمايش و ويرايش اطلاعات منبع داده ای بپردازيد .

نکته مهم : نکته مهمل که در اين قسمت بايد به آن اشاره کنيم ، اين است که شما می توانيد ConnectionString مورد نظر خود را به جای تعيين در فايل web.config و سپس اشاره به آن ، مستقيما آن را در درون تگ کنترل SqlDataSourec خود در صفحه ASP.NET آن را ايجاد کنيد . مزيت تعيين آن در فايل web.config عبارتست از :

  1. با تعيين يک CoonectionString در فايل web.config ، شما می توانيد از نام آن برای چندين کنترل SqlDataSource به صورت همزمان و مشترک استفاده کنيد . به عبارت ديگر در اين روش می توانيد با يکبار کدنويسی ، آن را چندين بار مورد استفاده قرار دهيد .
  2. چنانچه در آينده بخواهيد يک ConnectionString واحد را در برنامه تغيير دهيد ، چنانچه آن را در فايل web.config تعيين کرده باشيد ، فقط با يکبار تغيير آن ، ConnectionString تمام کنترل ها به صورت همزمان تغيير می کند . اما چنانچه آن را در صفحات تعيين کرده باشيد ، بايد هر يک را به صورت مجزا تغيير دهيد ، که کار بسيار زمان گير بوده و با احتمال همراه است .
  3. در حالت تعيين ConnectionString در فايل web.config ، امنيت و کارایی برنامه افزايش یافته و حجم کدنویسی نيز کاهش می یابد .

جنانچه بخواهيد CoonectionString را در درون تگ کنترل SqlDataSource خود ايجاد کنيد ، کد آن به صورت زير در خواهد آمد :

Example
< asp:SqlDataSource   runat="server"   ID="SqlControl1"  ConnectionString = " data source = Developer-PC ; initial catalog = UniverCity ; Integrated Security = True "   ProviderName="System.Data.SqlClient"     SelectCommand="Select Name from Students " >
< /asp:SqlDataSource >
کد


استفاده از محيط طراحی ( Design ) در برنامه Visual Studio 2005 :

برای اطن منظور مراحل زير را به ترتيب انجام دهيد :

  1. صفحه ASP.NET مورد نظر خود را در برنامه Visual Studio باز کرده به نمای طراحی ( Design ) برويد .
  2. از منوی Toolbox و قسمت Data ، يک کنترل جديد SqlDataSource را بر روی صفحه قرار دهيد .
  3. کنترل را از روی صفحه انتخاب کرده ، بر روی آن کليک سمت راست نموده و از منوی ظاهر شده گزينه Show Smart Tag را انتخاب کنيد . همچنين جهت نمايش اين منو می توانيد علامت فلش کوچکی که در گوشه بالای کنترل در هنگام انتخاب آن ظاهر می شود را نيز کليک کنيد .
  4. از منوی باز شده گزينه Configure Data Source را انتخاب کنيد تا پنجره ای به همين نام باز شود . از پنجره باز شده ، از قسمت Which data conneciton should your application use to connect to the database ? می توانيد نام يک ConnectionString از قبل ايجاد شده را به عنوان ConnectionString کنترل مورد نظر خود انتخاب کنيد . اما اگر می خواهيد يک ConnectionString جديد را برای آن بسازيد ، بر روی گزينه New Connection کليک کنيد .
  5. پنجره جديدی به نام Add Connection باز می شود . از قسمت Data Source نوع کلاس ADO.NET مورد نظر خود را انتخاب کنيد که حالت پيش فرض آن برای کنترل SqlDataSource ، مقدار Microsoft SQL Srver ( SqlClient ) است .
  6. در قسمت Server Name نام سرور پايگاه داده خود را انتخاب کنيد . چنانچه پايگاه داده مورد نظرتان بر روی کامپيوتر خودتان قرار دارد ، می توانيد به جای آن کاراکتر . ( نقطه ) و يا نام کامپيوترتان را وارد کنيد . چنانچه پايگاه داده بر روی يک کامپيوتر بر روی يک شبکه قرار دارد ، بايد نام آن کامپیوتر بر روی شبکه را وارد کنيد .
  7. در قسمت Log on to the server می توانيد شرايط امنيتی اتصال به پايگاه داده را تعيين کنيد . اين قسمت دارای 2 حالت زير است :
    • Use Windows Authentincation : در اين حالت برنامه به User Name و Password خاصی وابسته نيست و از Log On ويندوز برای اتصال به پايگاه داده استفاده می کند .
    • Use SQL Server Authentication : در اين حالت شما می توانيد يک Username و Password را برای اتصال به پايگاه داده مورد نظر تعيين کنید ، که در اين صورت کاربر برای اتصال به آن پايگاه داده در زمان اجرای برنامه بايد Username , Password تعيين شده را وارد کند .
  8. سپس در قسمت Connect to a database و در کادر Select or enter a database name می توانيد نام پايگاه داده ای را که می خواهيد به آن متصل شويد را از کادر کشویی آن انتخاب کرده و يا نام آن را به صورت دستی وارد کنيد .
  9. پس از انجام مراحل فوق ، کار اتصال به پايگاه داده مورد نظرتان به اتمام رسیده است . می توانيد برای امتحان ارتباط ايجاد شده بر روی گزينه Test Connection کليک کنيد که در صورت مشاهده پيغام The Connection Succeed ، به اين معناست که ارتباط به درستی برقرار شده است . در نهايت بر روی گزينه Ok کليک کرده و می توانيد از امکانات کنترل خود استفاده کنيد .