اتصال کنترل SqlDataSource به منبع داده
مقدمه :
هما نطور که در بخش قبل گفتيم ، کنترل SqlDataSource برای اتصال به انواع مختلفی از
منابع داده ای به کار می رود .برای ايجاد ارتباط بايد يک ConnectionString مناسب و
يک دستور Select را در خاصيت SelectCommand کنترل تعيين کنيد . سپس می توانيد اين کنترل
را به همراه يک يا چند کنترل وب ديگر که از خاصيت DataSourceID پشتيبانی می کنند ،
برای نمايش و ويرايش اطلاعات استفاده کنيد .
نحوه ايجاد يک ConnectionString برای يک کنترل SqlDataSource :
برای ايجاد يک ConnectionString مناسب می توان از 2 روش مختلف زير استفاده کرد :
- استفاده از محيط کدنویسی : در اين حالت کاربر به صورت مستقيم
کدهای لازم را در قسمت های مربوط تايپ می کند . لازمه اين روش آشنایی کامل به نحوه
کدنويسی ConnectionString و انواع خواص مربوط به آن است .
- استفاده از محيط طراحی ( Design ) نرم افزار Microsoft Visual Studio
2005 : در اين حالت ، کاربر از محيط طراحی نرم افزار استفاده کرده و با بهره
گيری از منوها و امکانات Visual موجود ، اقدام به ايجاد ConnectionString کرده و ديگر
نياز به کد نويسی مستقيم ندارد . همزمان با انجام عمليات در محيط طراحی ، برنامه به
طور خودکار کدهاب متنی لازم را توليد کرده و در جاهای مناسب قرار می دهد .
در ادامه به معرفی هر 2 روش می پردازيم .
1 ) روش استفاده از محيط کدنويسی :
- فايل * web.config را از منوی Solution Explorer در فهرست اصلی
وب سايت خود باز کنيد . در صورتی که اين فايل وجود ندارد ، يک نمونه از آن ايجاد کنيد
.
فايل web.config : فايل web.config ، يک فايل سیستمی است که
هر سايت ASP.Net ، يک نمونه از آن را بايستی داشته باشد . اگر سايت خود را با استفاده
از نرم افزار Visual Studio ايجاد کنيد ، اين برنامه به طور خودکار يک نمونه از فايل
را برای سايت شما ايجاد می کند . اين فايل شامل اطلاعات مهم و کلی مربوط به نتظيمات
مختلف سايت برای قرار گرفتن بر روی وب است .
- در تگ < Configuration > ، تگ < ConnectionString > را باز کنيد . چنانچه
اطن تگ نيز وجود ندارد ، يک نمونه از آن را ايجاد کنيد .
- در درون تگ < 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 "
|
-
در نهايت باي قسمت < ConnectionStrign > فايل web.config شما به صورت زير باشد
. در تيجه فايل web.config را برای اعماا تغييرات ايجاد شده ، ذخيره کنيد .
<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 برای ايجاد ارتباط به
صورت زير است :
- يک کنترل SqlDataSourec را بر روی صفحه ASP.NET مورد نظر خود قرار دهيد . اين کنترل
در منوی Toolbox و در قسمت Data قرار دارد .
- در درون بدنه تگ کنترل SqlDataSource موارد زير را تعيين کنيد :
- SelectCommand : اين خاصيت تعيين کننده دستور SQL مورد نظر
از نوع Select است ، که برای فراخوانی اطلاعات مورد نظر شما از جدول مربوطه در پايگاه
داده مورد استفاده قرار می گيرد . نحوه تنظيم و استفاده از اين خاصيت را در بخش بعدی
به طور کامل تشريح می کنيم . برای نمونه در مثال زير يک دستور Select را برای دريافت
اطلاعات تعيين کرده ايم :
|
SelectCommand = " Select Name From Student "
|
- ConnectionString : مقدار اين خاصيت را با نام ConnectionString
مورد نظر خود که قبلا آن را در فايل web.config ايجاد کرده ايد ، مقدار دهی کنيد .
برای نمونه در مثال زير مقدار آن را با نام ConnectionSting ی که در بالا ايجاد کرده
بوديم ، مقدار دهی می کنيم . توجه کنيد که از فرمت زير برای مقدار دهی خاصيت ConnectionString
استفاده کنيد :
|
ConnectionString = " < %$ ConnectionStrings:SampleConnection % > "
|
در نهايت کد کنترل SqlDataSource شما بايد به صورت زير باشد :
< 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 عبارتست از :
- با تعيين يک CoonectionString در فايل web.config ، شما می توانيد از نام آن برای چندين
کنترل SqlDataSource به صورت همزمان و مشترک استفاده کنيد . به عبارت ديگر در اين روش
می توانيد با يکبار کدنويسی ، آن را چندين بار مورد استفاده قرار دهيد .
- چنانچه در آينده بخواهيد يک ConnectionString واحد را در برنامه تغيير دهيد ، چنانچه
آن را در فايل web.config تعيين کرده باشيد ، فقط با يکبار تغيير آن ، ConnectionString
تمام کنترل ها به صورت همزمان تغيير می کند . اما چنانچه آن را در صفحات تعيين کرده
باشيد ، بايد هر يک را به صورت مجزا تغيير دهيد ، که کار بسيار زمان گير بوده و با
احتمال همراه است .
- در حالت تعيين ConnectionString در فايل web.config ، امنيت و کارایی برنامه افزايش
یافته و حجم کدنویسی نيز کاهش می یابد .
جنانچه بخواهيد CoonectionString را در درون تگ کنترل SqlDataSource خود ايجاد کنيد
، کد آن به صورت زير در خواهد آمد :
< 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 :
برای اطن منظور مراحل زير را به ترتيب انجام دهيد :
- صفحه ASP.NET مورد نظر خود را در برنامه Visual Studio باز کرده به نمای طراحی ( Design
) برويد .
- از منوی Toolbox و قسمت Data ، يک کنترل جديد SqlDataSource را بر روی صفحه قرار دهيد
.
- کنترل را از روی صفحه انتخاب کرده ، بر روی آن کليک سمت راست نموده و از منوی ظاهر
شده گزينه Show Smart Tag را انتخاب کنيد . همچنين جهت نمايش اين منو می توانيد علامت
فلش کوچکی که در گوشه بالای کنترل در هنگام انتخاب آن ظاهر می شود را نيز کليک کنيد
.
- از منوی باز شده گزينه Configure Data Source را انتخاب کنيد تا پنجره ای به همين نام
باز شود . از پنجره باز شده ، از قسمت Which data conneciton should your application
use to connect to the database ? می توانيد نام يک ConnectionString از قبل ايجاد
شده را به عنوان ConnectionString کنترل مورد نظر خود انتخاب کنيد . اما اگر می خواهيد
يک ConnectionString جديد را برای آن بسازيد ، بر روی گزينه New Connection کليک کنيد
.
- پنجره جديدی به نام Add Connection باز می شود . از قسمت Data Source نوع کلاس ADO.NET
مورد نظر خود را انتخاب کنيد که حالت پيش فرض آن برای کنترل SqlDataSource ، مقدار
Microsoft SQL Srver ( SqlClient ) است .
- در قسمت Server Name نام سرور پايگاه داده خود را انتخاب کنيد . چنانچه پايگاه داده
مورد نظرتان بر روی کامپيوتر خودتان قرار دارد ، می توانيد به جای آن کاراکتر . ( نقطه
) و يا نام کامپيوترتان را وارد کنيد . چنانچه پايگاه داده بر روی يک کامپيوتر بر روی
يک شبکه قرار دارد ، بايد نام آن کامپیوتر بر روی شبکه را وارد کنيد .
- در قسمت Log on to the server می توانيد شرايط امنيتی اتصال به پايگاه داده را تعيين
کنيد . اين قسمت دارای 2 حالت زير است :
- Use Windows Authentincation : در اين حالت برنامه به User
Name و Password خاصی وابسته نيست و از Log On ويندوز برای اتصال به پايگاه داده استفاده
می کند .
- Use SQL Server Authentication : در اين حالت شما می توانيد
يک Username و Password را برای اتصال به پايگاه داده مورد نظر تعيين کنید ، که در
اين صورت کاربر برای اتصال به آن پايگاه داده در زمان اجرای برنامه بايد Username ,
Password تعيين شده را وارد کند .
- سپس در قسمت Connect to a database و در کادر Select or enter a database name می توانيد
نام پايگاه داده ای را که می خواهيد به آن متصل شويد را از کادر کشویی آن انتخاب کرده
و يا نام آن را به صورت دستی وارد کنيد .
- پس از انجام مراحل فوق ، کار اتصال به پايگاه داده مورد نظرتان به اتمام رسیده است
. می توانيد برای امتحان ارتباط ايجاد شده بر روی گزينه Test Connection کليک کنيد
که در صورت مشاهده پيغام The Connection Succeed ، به اين معناست که ارتباط به درستی
برقرار شده است . در نهايت بر روی گزينه Ok کليک کرده و می توانيد از امکانات کنترل
خود استفاده کنيد .