اتصال به کنترل داده

همانطور که در قسمت قبل توضیح دادیم ، برای اتصال به یک منبع اطلاعاتی ( مثلا یک پایگاه داده SQL Server و یا Access ) ، بایستی ابتدا یک کنترل داده مرتبط به آن نوع منبع اطلاعاتی مثل کنترل SqlDataSource و یا AccessDataSource را به منبع اطلاعاتی متصل کرده و سپس یک کنترل وب که قادر به نمایش اطلاعات به دست آمده است مثل یک کنترل FormView یا GridView را به کنترل داده متصل کنیم .
در این حالت کنترل داده در مواقع درخواست شده به پایگاه داده متصل شده و اطلاعات لازم را از آن دریافت می کند . سپس کنترل وب متصل به کنترل داده ، اطلاعات دریافتی را قالب بندی کرده و نمایش می دهد . بنابراین کنترل های داده خود قادر به نمایش اطلاعات به دست آمده نیستند و فقط در نقش تامین کننده اطلاعات درخواستی به کار می روند . با استفاده از ترکیب یک کنترل داده و یک کنترل وب می توانید به راحتی و با حجم بسیار پایین کدنویسی ، اطلاعات موجود در هر منبع داده ای را خوانده ، حذف ، ویرایش ، صفحه بندی و یا مرتب سازی کنید .

اتصال یک کنترل وب به یک کنترل داده :

به طور کلی ۲ روش برای اتصال یک کنترل وب به یک کنترل داده وجود دارند که عبارتند از :

اتصال در محیط کدنویسی با استفاده از خاصیت DataSourceID
اتصال با استفاده از محیط طراحی ( Design ) در نرم افزار Visual Studio 2005

در ادامه به معرفی و توضیح دو روش فوق می پردازیم :

۱ ) اتصال در محیط کدنویسی با استفاده از خاصیت DataSourceID :

برای اینکه یک کنتزل وب را به یک کنترل داده متصل کنیم ، بایستی خاصیت DataSourceID کنترل وب را برابر با مقدار ID کنترل داده قرار دهیم . برای مثال اگر یک کنترل داده SqlDataSource داشته باشیم که ID آن برابر با SqlControl1 بوده و قبلا به یک پایگاه داده SQL Server متصل شده است و بخواهیم یک کنترل وب از نوع GridView را به آن مرتبط سازیم ، باید مقدار خاصیت DataSourceID کنترل GridView را برابر با مقدار ID کنترل SqlDataSource مورد نظر یعنی SqlControl1 قرار دهیم .

مثال ۱ : در مثال زیر یک کنترل GridView را به یک کنترل SqlDataSource که ID آن برابر با SqlControl1 است ، متصل ساخته ایم :

<form id=”form1″ runat=”server”><asp:GridView    ID=”GridView1″    runat=”server”   DataSourceID=”SqlControl1″>
</asp:GridView>

<asp:SqlDataSource  ID=”SqlControl1″  runat=”server”
ConnectionString=”<%$ ConnectionStrings:Univer_Connection %>”
SelectCommand=”Select * from Students”>
</asp:SqlDataSource>

< form >

 

مثال ۱ : در مثال زیر یک کنترل FormView را به یک کنترل AccessDataSource که ID آن برابر با Access_EX است ، متصل ساخته ایم :

<form id=”form1″ runat=”server”><asp:FormView    ID=”FormView1″    runat=”server”   DataSourceID=”Access_EX”>
</asp:FormView>

<asp:AccessDataSource  ID=”Access_EX”  runat=”server”   DataFile=”~/App_Data/Payment.mdb”
</asp:AccessDataSource>

< form >

۲ ) اتصال یک کنترل وب به یک کنترل داده در محیط طراحی ( Design ) در نرم افزار Visual Studio 2005:

ابتدا فایل صفحه را در برنامه باز کرده و موارد زیر را به ترتیب اجرا کنید .
* نکته : برای آموزش این بخش ، از مثالی استفاده می کنیم که در آن می خواهیم یک کنترل وب GridView را به یک کنترل داده SqlDataSource متصل کنیم . در این مثال فرض می کنیم ، که کنترل SqlDataSource قبلا بر روی صفحه وجود داشته و به یک پایگاه داده SQL Server متصل شده است . برای دریافت اطلاعات راجع به نحوه اتصال کنترل SqlDataSource به پایگاها داده به بخش آموزش اتصال یک کنترل SqlDataSource به پایگاه داده بروید .

برنامه را در حالت Design قرار داده و سپس یک کنترل GridView را از منوی Toolbox بر روی صفحه اضافه کنید .
بر روی کنترل GridView کلیک سمت راست کرده و از منوی ظاهر شده ، گزینه Show Smart Tag را انتخاب کنید .
منوی GridView Tasks ظاهر شده و در قسمت Choose Data Source ،مقدار ID کنترل SqlDataSource مورد نظر را از کادر کشویی آن انتخاب کرده و به محیط طراحی باز گردید .
هم اکنون دو کنترل GridView و SqlDataSource به هم متصل بوده و کنترل GridView می تواند از اطلاعات فراهم شده توسط کنترل SqlDataSource استفاده کرده و به پایگاه داده آن متصل شود .

نکته ۲ : هر دو روش ذکر شده ، خروجی یکسانی را در قسمت کدنویسی ایجاد می کنند . در واقع در روش دوم برنامه به طور اتوماتیک کد لازم را برای ارتباط دو کنترل ایجاد می کند و تنها تفاوت آنها این است که در روش دوم از محیط تصویری ( Visual ) اسفاده می کنیم . اگر پس از انجام روش دوم به قسمت کدنویسی بروید ، خواهید دید که خاصیت DataSourceID کنترل GridView برابر ID کنترل SqlDataSource شده است .

نکته ۳ : در آینده می توانید با تغییر مقدار خاصیت DataSourceID کنترل GridView آن کنترل را به هر کنترل وب دلخواه دیگر متصل کنید .