آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش منابع داده در ASP.NET

دوره های مرتبط با این مقاله

منابع داده / Data Source – ASP.NET

کنترلهای Databound برای نمایش دادن داده به کاربر در برنامه ی تحت وب بکار می روند. با استفاده از کنترل های Databound می توان داده ها را به راحتی در اپلیکیشن مدیریت و پردازش (manipulate) کرد.

کنترل های data-bound به خاصیت DataSource متصل هستند.

کنترل های Databound در واقع کنترل های مرکبی هستند که دیگر کنترل های ASP.NET مثل textbox ها، radio button و غیره را باهم ترکیب می کنند.

یک کنترل data source با کنترل های Data bound تعامل و ارتباط برقرار کرده و از این طریق فرایندهای پیچیده ی مقید سازی و اتصال داده ها (data binding) را مخفی می سازد. اینها ابزاری هستند که داده ها را در اختیار کنترل های data bound قرار می دهند و اجرای عملیلاتی همچون درج (insertion)، حذف (deletion)، مرتب سازی (sorting) و بروز رسانی (update) را پشتیبانی می کنند.

هر کنترل data source یک ارائه دهنده ی داده (data provider) معین از جمله پایگاه داده رابطه ای (relational database)، سندXML یا کلاس سفارشی را دربرمی گیرد و همچنین در انجام عملیات زیر به شما کمک می کند:

  • مدیریت اتصال
  • انتخاب داده
  • ذخیره سازی داده در حافظه ی پنهان (caching)، صفحه بندی (paging) . . ..
  • مدیریت و پردازش داده

کنترل های Data source فراوانی در ASP.NET وجود دارد که امکان دسترسی به داده از SQL Server، سرور های ODBC و OLE DB ، فایل های XML و غیره .. فراهم می کنند.

می توان این کنترل ها را بر مبنای نوع داده به دو دسته تقسیم کرد:

  • کنترل های منبع داده سلسله مراتبی (Hierarchical data source controls)
  • کنترل های منبع داده مبتنی بر جدول (Table-based data source controls)

کنترل های داده ای (data source control) که ویژه ی داده های سلسله مراتبی (Hierarchical data) بکار می روند به ترتیب زیر می باشند:

  • XMLDataSource – برای اتصال به فایل ها و رشته های xml با / بدون اطلاعات شِما (schema). کنترل XmlDataSource ، دارای قابلیت خواندن و نوشتن در سند های XML می باشد ، از این رو می توان از آن برای اتصال، دریافت اطلاعات و بروز رسانی سندهای XML استفاده کنيد . اين کنترل در واقع ارائه دهنده ی داده از منابع XML برای کنترل های TreeView و Menu است که با ساختار ترتیبی و درختی که ویژه ی نوع داده ای فایل های XML است ، کار می کنند .
  • SiteMapDataSource – امکان اتصال به ارائه دهنده ی داده (data provider) که اطلاعات نقشه ی سایت (site map) را تامیین می کنند، فراهم می آورد. کنترل SiteMapDataSource برای کار با site mapها در ASP.NET تعبیه شده است و قابلیت ايجاد و دريافت اطلاعات مورد نیاز برای عمليات پیمایش در سایت را داراست . site map يک شرح از تمامی صفحه ها و زير صفحه های موجود در يک سايت است، که با استفاده از زبان نشانه گذاری XML طراحی می شود . اين کنترل توانایی اتصال به اين نوع فايل ها را داراست و کنترل های ديگر همانند Menu و يا TreeView می توانند از امکانات و اطلاعات فراهم شده توسط اين کنترل ، برای ايجاد منوهای ترتيبی جهت پیمایش سايت استفاده کنند .

کنترل های داده ای که برای داده های مبتنی بر جدول بکار می روند، ذیل فهرست شده اند:

کنترل های داده
شرح
SqlDataSource
کنترل SqlDataSource برای اتصال به يک پايگاه داده SQL Server ، OLB DB ، ACCESS و یا Oracle استفاده می شود . اين کنترل قادر به دريافت داده از منابع نام برده و نیز حذف ، اضافه و یا بهروز رسانی اطلاعات در آنها را می باشد.
قابلیت اتصال به یک تامیین کننده ی داده ADO.NET را فراهم می کند که داده های SQL را برمی گرداند. داده های SQL می تواند شامل منابع داده ای باشد که از طریق OLEDB و QDBC قابل دسترسی است.
ObjectDataSource
این کنترل امکان اتصال به یک شئ.Net business سفارشی را بوجود آورده که داده برمی گرداند. به عبارتی دیگر این کنترل نشانگر یک business object است که داده در معماری های برنامه ی تحت وب چند لایه ای در اختیار کنترل های data-bound می گذارد.
LinqdataSource
امکان متصل شدن و دسترسی به نتایج یک query (پرسمان) Linq-to-SQL (از linq به sql) را فراهم می آورد.
این کنترل با ارائه ی امکان استفاده از LINQ در صفحات asp.net از طریق متن نشانه گذاری شده (markup text) داده ها را از data object بازیابی کرده و آن ها را اصلاح می کند.
AccessDataSource
اتصال به پایگاه داده ی Microsoft Access را امکان پذیر می کند. کنترل AccessDataSource يک نسخه ويژه از کنترل SqlDataSource است که برای اتصال به يک پايگاه داده Microsoft Access تعبیه شده است و قادر به برقراری ارتباط با فایل های mdb. می باشد(مشابه کنترل SqlDataSource ، می توان دستورات صريح و مستقیمی برای اعمال مختلف اين کنترل از جمله Select ، Insert ، Update به زبان SQL تعيين کرد) .

Data Source Views

Data source views در واقع اشیایی از کلاس DataSourceView هستند که بیانگر view های (نمایه) سفارشی از عملیات مختلف مربوط به داده همچون مرتب سازی (sort)، فیلتر کردن (filtering) و غیره .. می باشد.

DataSourceView در حقیقت کلاس پایه تمامی کلاس های data source view می باشد. کلاس مذکور قابلیت های مختلف کنترل های data source را تعریف می کند.

این کلاس خاصیت هایی دارد که در جدول زیر برای شما لیست شده:

خاصیت
شرح
CanDelete
تعیین می کند آیا امکان پاک کردن داده از منبع داده زیرین (underlying data source) وجود دارد یاخیر.
این خاصیت مقداری برمی گرداند که نشان می دهد آیا شئ DataSourceView مرتبط با شئ DataSourceControl جاری از عملیات ExecuteDelete پشتیبانی می کند یا خیر.
CanInsert
مقداری برمی گرداند که این مقدار نشان می دهد آیا امکان درج داده در پایگاه داده زیرین (underlying database) وجود دارد یا خیر.
مقداری بازیابی می کند که تعیین می کند آیا کنترل منبع داده مربوطه (data source control) با پیکربندی کنونی قابلیت اجرای عملیات درج (insertion operation) را دارد یا خیر.
CanPage
این خاصیت تعیین می کند آیا امکان صفحه بندی (paging) در data source زیرین وجود دارد یا خیر. مقداری برگردانده می شود که این مقدار مشخص می کند آیا شئ DataSourceView مرتبط با شئ DataSourceControl جاری از قابلیت صفحه بندی به وسیله ی داده ای که از متد ExecuteSelect بازیابی کرده پشتیبانی می کند یا خیر.
CanRetrieveTotalRowCount
مشخص می کند آیا امکان بازیابی اطلاعات درباره ی تعداد کل سطرهای داده (data row) وجود دارد یا خیر.
CanSort
این خاصیت تعیین می کند آیا امکان مرتب سازی داده وجود دارد یا خیر.
CanUpdate
این property تعیین می کند آیا امکان بروز رسانی داده وجود دارد یا خیر.
Events
این خاصیت فهرستی از delegate های مدیریت کننده ی رخداد(event-handler) برمی گرداند که برای data source view بکار گرفته می شود.
Name
این خاصیت اسم data source view را برمی گرداند.

جدول زیر توابع این کلاس DataSourceView را ارائه می دهد:

متد
شرح
CanExecute
تعیین می کند آیا دستور (command) مشخص شده می تواند اجرا شود یا خیر.
ExecuteCommand
این تابع دستور (command) معین را اجرا می کند.
ExecuteDelete
عملیات پاک کردن (deletion) را روی لیست داده ای که متصل به شئ DataSourceView است اجرا می کند.
ExecuteInsert
عملیات درج را روی لیست داده پیاده می کند.
ExecuteSelect
لیستی از داده ها از محل ذخیره سازی داده (data storage) انتخاب کرده و برمی گرداند.
ExecuteUpdate
عمل بروز رسانی داده ها را روی لیست داده که متعلق به شئ DataSourceView می باشد اجرا می کند.
Delete
این تابع عملیات پاک کردن (deletion) را به طور ناهمزمان روی لیست داده (مربوط به شئ DataSourceView) پیاده (اجرا) می کند.
Insert
عملیات درج را روی داده های مربوط به شئ DataSourceView اجرا می کند.
Select
داده ی درخواست (query) شده را باز می گرداند.
لیستی از داده ها به طور ناهمگام از محل ذخیره ی داده برمی گرداند.
Update
داده های مربوط به شئ DataSourceView را بروز رسانی می کند / عملیات بروز رسانی را روی داده ی های مرتبط با شئ DataSourceView اجرا می کند.
OnDataSourceViewChanged
این تابع رخداد (event) DataSourceViewChanged را فعال می کند.
RaiseUnsupportedCapabilitiesError
این تابع توسط متد RaiseUnsupportedCapabilitiesError به منظور مقایسه ی قابلیت های مورد نیاز (درخواست شده ی) عملیات ExecuteSelect با قابلیت هایی که توسط view پشتیبانی می شود فراخوانده می شود.

کنترل SqlDataSource

کنترل SqlDataSource برای اتصال به يک پايگاه داده SQL Server ، OLB DB ، ACCESS و یا Oracle استفاده می شود . اين کنترل قادر به دريافت داده از منابع نام برده و نیز حذف ، اضافه و یا بهروز رسانی اطلاعات در آنها را می باشد. اتصال و دسترسی به داده با بکارگیری دو خاصیت ConnectionString و ProviderName امکان پذیر می باشد.

همان طور که مشاهده می کنید تکه کد زیر نحوه ی کلی نگارش (syntax) کنترل مزبور را نمایش می دهد:

< asp:SqlDataSource runat="server" ID="MySqlSource"
ProviderName='< %$ ConnectionStrings:LocalNWind.ProviderName  % >'
ConnectionString='< %$ ConnectionStrings:LocalNWind % >'
SelectionCommand= "SELECT * FROM EMPLOYEES" / >
< asp:GridView ID="GridView2" runat="server" DataSourceID="MySqlSource" / >
                        

پیکربندی عملیات مختلف که روی داده های زیرین (underlying data) پیاده می شود به مجموعه خاصیت های کنترل data source بستگی دارد.
مجموعه خاصیت های کنترل SqlDataSource که رابط برنامه نویسی (programming interface) این کنترل را فراهم می کنند، در جدول زیر مشاهده می کنید:

Property Group (مجموعه خاصیت)
شرح
DeleteCommand,
DeleteParameters,
DeleteCommandType
نوع، پارامتر و دستور SQL ویژه ی پاک کردن سطرها را خوانده یا تنظیم می کند.
FilterExpression,
FilterParameters
پارامترها و رشته های filtering (فیلتر) داده را بازیابی کرده یا مقداردهی می کند.
InsertCommand,
InsertParameters,
InsertCommandType
نوع (type)، پارامترها و دستور SQL ویژه ی درج (insert) سطر (row) در پایگاه داده را برگردانده یا تنظیم می کند.
SelectCommand,
SelectParameters,
SelectCommandType
نوع (type)، پارامتر و دستور SQL ویژه ی بازیابی سطرها از پایگاه داده را بازگردانی کرده یا مقداردهی می کند.
SortParameterName
اسم پارامتر ورودی (input parameter) که رویه ی آماده (stored procedure) دستور (command) مورد نظر از آن به منظور مرتب سازی داده ها کمک می گیرد، بازیابی کرده یا تنظیم می کند.
UpdateCommand,
UpdateParameters,
UpdateCommandType
نوع (type)،پارامترها و دستور SQL ویژه ی بروز رسانی سطرهای (row) پایگاه داده را بازگردانده یا مقداردهی می کند.

در تکه کد (code snippet) زیر مشاهده می کنید که یک کنترل data source (منبع داده) به منظور دستکاری و مدیریت داده (data manipulation) فعال سازی شده:

< asp:SqlDataSource runat="server" ID="MySqlSource"
ProviderName='< %$ ConnectionStrings:LocalNWind.ProviderName  % >'
ConnectionString=' < %$ ConnectionStrings:LocalNWind % >'
SelectCommand="SELECT * FROM EMPLOYEES"
UpdateCommand="UPDATE EMPLOYEES SET LASTNAME=@lame"
DeleteCommand="DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid"
FilterExpression="EMPLOYEEID  > 10" >.....
.....
< /asp:SqlDataSource >
                        

کنترل ObjectDataSource

کنترل ObjectDataSource با فعال سازی کلاس های user-dfined (کلاس های تعریف و ارائه شده توسط کاربر) خروجی (output) توابع کلاس های مذکور را به کنترل های data bound مربوط ساخته و متصل می کند. رابط برنامه سازی (programming interface) این کلاس تقریبا با کنترل SqlDataSource یکسان است.

زیر دو جنبه ی بسیار مهم متصل یا مقید سازی business object ها را مشاهده می کنید:

کلاس مورد نظر باید یک سازنده (constructor) پیش فرض داشته باشد، ناپایدار (stateless) بوده و متدهایی داشته باشد که بتوان برای انتخاب، بروز رسانی، درج و حذف semantics (لغات و معانی) نگاشت کرد.

شئ مورد نظر باید آیتم ها را به صورت تکی بروز رسانی کند، عملیات دسته ای و گروهی پشتیبانی نمی شوند.

در این مرحله برای آشنایی هر چه بیشتر شما یک مثال کاربردی ارائه می دهیم. کلاس Student کلاسی است که باید با یک object data source بکار گرفته شود. کلاس ذکر شده دارای سه خاصیت (property) می باشد: student id، name و city . این کلاس همچنین دارای یک سازنده (constructor) پیش فرض و متد GetStudents برای بازیابی داده است:

کلاس Student:

using System.Data;
public class Student
{
public int StudentID { get; set; }
public string Name { get; set; }
public string City { get; set; }
 
public Student()
{ }
 
public DataSet GetStudents()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("Students");
 
dt.Columns.Add("StudentID", typeof(System.Int32));
dt.Columns.Add("StudentName", typeof(System.String));
dt.Columns.Add("StudentCity", typeof(System.String));
dt.Rows.Add(new object[] { 1, "M. H. Kabir", "Calcutta" });
dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" });
ds.Tables.Add(dt);
 
return ds;
}
}
                        

با دنبال کردن مراحل زیر شئ مورد نظر را به object data source متصل ساخته و داده ها را بازیابی کنید:

ابتدا یک وب سایت جدید ایجاد کنید.

حال یک کلاس (Students.cs) به وب سایت خود اضافه کنید. برای این منظور در پنجره ی solution explorer روی پروژه راست کلیک کرده، یک قالب کلاس (class template) اضافه کنید، سپس کد فوق را در آن جای گذاری کنید.

Solution را ساخته تا application مورد نظر بتواند از ارجاع (reference) به کلاس استفاده کند.

  • یک کنترل object data source در فرم وب (web form) قرار دهید.
  • با انتخاب object، data source را پیکربندی (configure) کنید.

متد یا متدهایی را برای اجرای عملیات مختلف روی داده انتخاب کنید. در این مثال تنها یک متد بکار رفته است.

اکنون یک کنترل data bound همچون grid view روی صفحه قرار داده و object data source را به عنوان منبع داده ی زیرین (underlying datasource) انتخاب کنید.

در این مرحله design view ظاهری همچون تصویر زیر خواهد داشت:

پروژه را اجرا کنید، خواهی دید که tuple های (مجموعه ای از مقادیر مرتبط با هم) hard code شده از کلاس students بازیابی می شود.

کنترل AccessDataSource

اتصال به پایگاه داده ی Microsoft Access را امکان پذیر می کند. کنترل AccessDataSource يک نسخه ويژه از کنترل SqlDataSource است که برای اتصال به يک پايگاه داده Microsoft Access تعبیه شده است و قادر به برقراری ارتباط با فایل های mdb. می باشد. این کنترل در واقع مبتنی بر پایگاه داده ی SqlDataSource بوده و رابط برنامه نویسی (programming interface) ساده تری نسبت به آن ارائه می دهد.

تکه کد زیر دستور نگارش کنترل مزبور را به نمایش می گذارد:

                            
< asp:AccessDataSource ID="AccessDataSource" runat="server"
DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM  [DotNetReferences]" >
< /asp:AccessDataSource >
                        

توجه داشته باشید که کنترل AccessDataSource فقط پایگاه داده را در حالت read-only اجرا می کند. با این وجود می توان از آن برای اجرای عملیاتی همچون درج (insertion)، بروز رسانی (update) یا حذف (delete) استفاده کرد. این کار با استفاده از دستورات ADO.NET و مجموعه ای از پارامترها (parameter collection) امکان پذیر می باشد.

بروز رسانی برای پایگاه داده ی Access به خصوص از داخل یک اپلیکیشن ASP.NET مشکل ساز است زیرا که پایگاه داده ی Access تنها یک فایل ساده است و همچنین حساب (account) پیش فرض ASP.NET ممکن است مجوز نوشتن را در فایل پایگاه داده نداشته باشد.


  • 5006
  •    1726
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .