اتصال به کنترل های داده در ASP.NET
اتصال به کنترل داده
همانطور که در قسمت قبل توضيح داديم ، برای اتصال به يک منبع اطلاعاتی ( مثلا يک پايگاه
داده SQL Server و يا Access ) ، بايستی ابتدا يک کنترل داده مرتبط به آن نوع منبع
اطلاعاتی مثل کنترل SqlDataSource و يا AccessDataSource را به منبع اطلاعاتی متصل
کرده و سپس يک کنترل وب که قادر به نمايش اطلاعات به دست آمده است مثل يک کنترل FormView
یا GridView را به کنترل داده متصل کنيم .
در این حالت کنترل داده در مواقع درخواست شده به پايگاه داده متصل شده و اطلاعات لازم
را از آن دريافت می کند . سپس کنترل وب متصل به کنترل داده ، اطلاعات دریافتی را قالب
بندی کرده و نمایش می دهد . بنابراین کنترل های داده خود قادر به نمايش اطلاعات به
دست آمده نيستند و فقط در نقش تامين کننده اطلاعات درخواستی به کار می روند . با استفاده
از ترکيب يک کنترل داده و يک کنترل وب می توانيد به راحتی و با حجم بسیار پايين کدنويسی
، اطلاعات موجود در هر منبع داده ای را خوانده ، حذف ، ويرایش ، صفحه بندی و یا مرتب
سازی کنید .
اتصال يک کنترل وب به يک کنترل داده :
به طور کلی 2 روش برای اتصال يک کنترل وب به يک کنترل داده وجود دارند که عبارتند از
:
- اتصال در محيط کدنويسی با استفاده از خاصيت DataSourceID
- اتصال با استفاده از محيط طراحی ( Design ) در نرم افزار Visual Studio 2005
در ادامه به معرفی و توضيح دو روش فوق می پردازيم :
1 ) اتصال در محيط کدنويسی با استفاده از خاصيت DataSourceID :
برای اينکه يک کنتزل وب را به يک کنترل داده متصل کنيم ، بايستی خاصيت
DataSourceID کنترل وب را برابر با مقدار ID کنترل
داده قرار دهیم . برای مثال اگر يک کنترل داده SqlDataSource داشته باشيم که ID آن
برابر با SqlControl1 بوده و قبلا به يک پايگاه داده SQL Server
متصل شده است و بخواهيم يک کنترل وب از نوع GridView را به آن مرتبط سازيم ، بايد مقدار
خاصيت DataSourceID کنترل GridView را برابر با مقدار ID کنترل
SqlDataSource مورد نظر یعنی SqlControl1 قرار دهيم .
مثال 1 : در مثال زير يک کنترل 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 >
|
مثال 1 : در مثال زير يک کنترل 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 >
|
2 ) اتصال يک کنترل وب به يک کنترل داده در محيط طراحی ( 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 استفاده کرده و به پايگاه داده آن متصل
شود .
نکته 2 : هر دو روش ذکر شده ، خروجی يکسانی را در قسمت کدنويسی ايجاد
می کنند . در واقع در روش دوم برنامه به طور اتوماتيک کد لازم را برای ارتباط دو کنترل
ايجاد می کند و تنها تفاوت آنها اين است که در روش دوم از محيط تصويری ( Visual ) اسفاده
می کنيم . اگر پس از انجام روش دوم به قسمت کدنويسی برويد ، خواهيد ديد که خاصيت DataSourceID
کنترل GridView برابر ID کنترل SqlDataSource شده است .
نکته 3 : در آینده می توانيد با تغيير مقدار خاصيت DataSourceID کنترل
GridView آن کنترل را به هر کنترل وب دلخواه ديگر متصل کنيد .