اکثربرنامه کامپيوتری نيازمند دستيابی به داده از طريق يک منبع داده ( Data Source ) می باشند . فريمورک دات نت ، امکان طراحی و پياده سازی برنامه های کامپيوتری با محوريت داده را فراهم و امکان دستيابی به داده از طريق منابع داده متفاوت و با استفاده از يک محيط همگن و يکپارچه توسط ADO.NET را فراهم می نمايد. ADO.NET امکان ايجاد برنامه های توزيعی و اشتراک داده بين آنان را فراهم می نمايد . با استفاده از امکانات ADO.NET امکان ارتباط با منابع داده متفاوت ، بازيابی ، پردازش و بهنگام سازی داده فراهم می گردد. ADO.NET از XML به منظور انتقال داده بين برنامه ها و منابع داده ، استفاده می نمايد.
اکثر کنترل های سرويس دهنده ASP.NET دارای پتانسيلی با نام " نسبت دهی داده " ( Data Binding ) ، می باشند. نسبت دهی داده ، فرآيندی است که در آن امکان استفاده از داده در يک برنامه وب فراهم می گردد. مثلا" می توان کنترل های سرويس دهنده DataGrid و DataList را بر روی يک فرم وب و به منظور نمايش داده موجود در يک Data Set استفاده نمود . دراين مقاله قصد داريم به با نحوه نمايش يک Data Set بر روی يک فرم وب با استفاده از کنترل DataGrid بيشتر آشنا شويم .
منابع داده ( Data Sources )
"منبع داده " ، يک بانک اطلاعاتی سرويس دهنده و يا يک فايل XML می باشد . برای دستيابی به يک منبع داده ، می بايست يک ارتباط( Connection ) با منبع داده از طريق Data Providers ، ايجاد گردد.Data Provider ارائه شده همراه ADO.NET ، امکان برقراری ارتباط به يک منبع داده و انجام عمليات متفاوتی نظير اجرای دستورات SQL را فراهم می نمايد .
NET Data Provider .
Data Provider ، امکان برقراری ارتباط با يک منبع داده را فراهم و در ادامه می توان دستوراتی را اجراء و نتايج مورد نظر را بازيابی نمود. . يک Data Provider ارائه شده در دات نت ، شامل اشياء Connection,Command,DataReader و DataAdapter بوده که امکان ارتباط با بانک اطلاعاتی و اجرای دستورات SQL را فراهم می نمايد. ويژوال استوديو دات نت و فريمورک دات نت ، شامل دو Provider ، با نام OLE DB .NET و SQL Server .NET می باشد . با استفاده از OLE DB.NET Provider می توان به منابع داده از نوع OLE DB ارتباط برقرار نمود. با بکارگيری SQL Server .NET Provider ، امکان برقراری ارتباط با بانک های اطلاعاتی SQL Server 7.0 و بعد از آن فراهم می گردد.
DataSet
-
يک Cache از رکوردهای بازيابی شده از يک منبع داده نظير يک بانک اطلاعاتی و يا يک فايل XML است.
-
شامل رکوردهائی از يک و يا چندين جدول و اطلاعاتی در خصوص نحوه ارتباط آنان می باشد.
-
با استفاده از DataSet ، امکان انجام پردازش دلخواه با توجه به خواسته کاربر ، ميسر می گردد.
-
از DataSet بدون يک منبع داده به منظور مديريت داده دريافتی از يک برنامه و يا يک فايل XML ، استفاده می گردد .
-
امکان ارتباط با بانک اطلاعاتی را به صورت غيرمتصل فراهم می نمايد .
-
امکان مبادله يک DataSet بين عناصر موجود در لايه های متفاوت وجود دارد. مثلا" يک عنصر در Tier ميانی می تواند اقدام به ايجاد و توزيع يک DataSet و ارسال آن برای عنصر ديگر در يک برنامه نموده تا امکان پردازش لازم برروی DataSet ، فراهم گردد.
-
در زمان ايجاد يک برنامه با محوريت داده که از ADO.NET استفاده می گردد ، داده بين اشياء متفاوت منتقل می گردد. داده در ابتدا از يک منبع داده به يک DataSet و در ادامه به عنصر مورد نظر منتقل می گردد( نظير کنترل ها در يک فرم وب) .
-
ADO.NET از XML به منظور انتقال داده بين عناصر متفاوت يک برنامه استفاده می نمايد . ADO.NET به صورت اتوماتيک فايل های XML را با استفاده از داده موجود در يک DataSet ايجاد و در ادامه آنان را برای عنصر ديگر ارسال می نمايد .
-
يک DataSet ، مجموعه ای از جداول و اطلاعاتی در رابطه با نحوه ارتباط بين آنان می باشد. هر جدول شامل مجموعه ای از سطرها ، ستون ها و محدوديت ها است . برای دستيابی به اين عناصر می توان از خصلت ها و مجموعه های يک DataSet استفاده نمود. برای کار با DataSet در ADO.NET از کلاس های زير استفاده می شود :
- کلاس DataSet : کلاس فوق ، شامل مجموعه Tables از جداول موجود در يک DataSet می باشد . علاوه بر اين، کلاس DataSet شامل مجموعه Relations بوده که ارتباط بين جداول در يک DataSet را مشخص می نمايد .
- کلاس DataTables : کلاس فوق ، شامل مجموعه های Rows و Columns بوده که مسئوليت ارائه سطرها و ستون ها را برعهده دارند.کلاس فوق، همچنين شامل مجموعه های ChildRelation و ParentRelation بوده که ارتباط بين جداول را مشخص می نمايد.
- کلاس DataRow : کلاس فوق ، شامل خصلت RowState می باشد . خصلت فوق ، تغيير يک سطر پس از لود شدن جدول از يک بانک اطلاعاتی را مشخص نموده و می تواند دارای مقادير Deleted,Modified,New و Unchanged ، باشد .
DataGrid
کنترل سرويس دهنده وب DataGrid ، داده ها را در يک لی اوت جدول بندی شده ، نمايش میدهد . به صورت پيش فرض DataGrid داده را در حالت Read-only ( فقط خواندنی ) نمايش داده ولی امکان نمايش داده به صورت اتوماتيک در زمان اجراء در کنترل های قابل ويرايش ، نيز وجود دارد DataGrid ، امکان Pagging را نيز فراهم می نمايد .کنترل DataGrid ، فيلدهای يک منبع داده را به عنوان ستون هائی در يک جدول نمايش می دهد. هر سطر در کنترل DataGrid نشان دهنده يک رکورد در منبع داده است . کنترل DataGrid امکاناتی همچون : انتخاب ، ويرايش ، حذف ، مرتب سازی و paging را حمايت می نمايد .
نمايش يک DataSet در DataGrid
ساده ترين روش نمايش يک Data Set بر روی يک فرم وب ، استفاده از کنترل DataGrid و مقداردهی مناسب خصلت DataSource آن می باشد.بدين منظور مراحل زير را دنبال می نمائيم :
-
ايجاد اشياء Connection,Adapter و Dataset ( در بخش اول مقاله ، توضيح داده شده است ) .
-
اضافه نمودن يک کنترل DataGrid بر روی فرم وب


-
مقداردهی خصلت DataSource مربوط به DataGrid به نام Data Set

-
افزودن کد لازم در رويداد Page_Load به منظور پر نمودن Data Set از طريق Adapter و نسبت دهی داده از Data Set به DataGrid
|
VB.NET
|
|
Private Sub Page_Load (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Mybase.Load
SqlDataAdapter1.Fill(DataSet11)
DataGrid1.DataBind()
End Sub
|
روتين فوق ، تمامی ستون های موجود در Data Set را بدون فرمت مناسب و به صورت زير نمايش می دهد :

همانگونه که مشاهده می شود ،DataGrid بدون فرمت خاصی نمايش داده شده است .برای انتخاب ستون هائی که قصد نمايش آنان را در DataGrid داريم و همچنين تعريف فرمت مناسب برای نمايش هر يک از آنان ، مراحل زير را دنبال می نمائيم :
-
کليک بر روی Property Builder در پنجره Properties . در ادامه ، جعبه محاوره ای Properties برای DataGrid نمايش داده می شود .

-
در صورتی که قصد نمايش تمام ستون های موجود را در DataGrid داشته باشيم ، می بايست گزينه Create Columns automatically at run time به همان وضعيت پيش فرض ( انتخاب شده ) باقی مانده و صرفا" با انتخاب گزينه Format ، اقدام به تعريف فرمت نمايش DataGrid و هر يک از ستون های مربوط به آن نمود.

-
در صورتی که قصد نمايش تمامی ستون های موجود را در DataGrid نداشته باشيم می بايست مقدارگزينه Create Columns automatically at run time ، غير فعال و در ادامه با استفاده از دکمه ">"، ، ستون ها ی مورد نظر به منظور نمايش در DataGrid را مشخص نمود . پس از انتخاب هر ستون می توان تظميمات لازم در ارتباط با آن را انجام داد. به عنوان نمونه ، می توان با استفاده از Header Text ، عنوان هر يک از ستون ها و با استفاده از Footer Text عنوان مورد نظر برای نمايش در قسمت پائين هر ستون را مشخص نمود ( مقدار پيش فرض ، Blank است ) .


-
برای تعريف فرمت مناسب برای هر يک از ستون ها در DataGrid ، گزينه Format را از طريق جعبه محاوره ای DataGrid Properties انتخاب و در ادامه می توان تنظيمات لازم ( رنگ رويه ، رنگ زمينه ، نوع و اندازه فونت ، تراز متن ) به منظور نمايش DataGrid ، عناوين ، ستون های انتخاب شده و ساير موارد ديگر را انجام داد. ( بررسی تمامی امکانات DataGrid از حوصله اين مقاله خارج بوده و در مقالاتی جداگانه به بررسی کامل آن خواهيم پرداخت ) .

شکل زير يک DataGrid فرمت شده را نمايش می دهد :

در بخش چهارم اين مقاله با نحوه استفاده از Data Set در يک DataList آشنا خواهيم شد.
|