DataSet Object ادامه قسمت 5

در ادامه اموزش طراحی وب سایت با asp در خدمتون هستن در این پست به ادامه قسمت 4 میپردازیم .پس ما ھم برای نمايش آن به صورت زير عمل می کنيم و حتويات جدول Loan که در شی DataSet قرار دارد ,درون GridView  نمايش داده می شوند:

(“GridView1.DataSource = ds.Tables(“loan

()GridView1.DataBind

حال اگر دلتان نخواھد از کنترلی مثل GridView استفاده کنيددر وب سایت  می توانيد از راھی ديگر برای نمايش داده ھا استفاده کنيد.مھمانطور که گفتيم برای دسترسی به سطر ھای يک DataSet از شی DataRow می توانيد استفاده کنيد.حالا می خواھيم در ادامه ی مثال بالا, مقادير موجود در DataSet را با شی DataRow نمايش دھيم.از آنجا که بيش از يک سطر در جدول پايگاه داده ی ما که در اينجا Loan است موجود است بايداز يک حلقه For استفاده کرد.برای راحتی نيز از حلقه ForEach استفاده می کنيم.در ابتدا يک شی از نوع DataRow در وب سایت تعریف میکنیم :

Dim dr As DataRow

سپس حلقه رابه اينگونه می نويسيم که تا آنجا که درسطر ھای جدول Loan داخل DataSet سطر وجود دارد ادامه بده:

For Each dr In ds.Tables(“loan”).Rows
Next

در حلقه ی For Each توجه کنيد که متغير قبل و بعد از کلمه ی کليدی In بايد از جنس ھم باشند.در اينجا چون ما Dr را از نوع DataRow سطر وجود دارد اين را مشخص کرديم که در  ادامه ی (“ds.Tables(“loan  بايد خصوصيت Rows را نيز اضافه کنيم.حالا در ھر بار گردش دراين حلقه,تمام داده ھای ھر سطر دست ماست (درون متغير dr ) وبرای نمايش آنھا کافيست از اين متغير استفاده کنيم و آرگومان وروديش را نام ستونھايی که می خواھيم نمايش دھيم بگذاريم:

For Each dr As DataRow In ds.Tables(“loan”).Rows
Response.Write(dr(“loan_number”) & “<br>”)
Response.Write(dr(“branch_name”) & “<br>”)
Response.Write(dr(“amount”) & “<br>”)
Response.Write(“————-” & “<br>”)
Next

با حلقه ی زير ھم اسامی جداول موجود در Dataset نمايش داه می شوند: For Each dr As DataTable In ds.Tables
Response.Write(dr.TableName & “<br>”)
Next

ھمانطور که می بينيد, برای دسترسی به نام جداول متغيری از نوع DataTable تعريف کرديم و ديگر نبايد نام جدول را به ds.Tables دھيم چون اصلا ما نام جداول را می خواھيم.وقتی بايدنام بدھيم که با اجزای جدول خاصی کار داشته باشيم .

ھمچنين می توانيد دادھای خاص را از Dataset استخراج کنيد.مثلا داده ای که در سطر ٢و ستون ٢ از آن قرار دارد:

 

Response.Write(ds.Tables(“loan”).Rows(2)(2).ToString

می بينيد که خاصيت Row از متد Tables از شی DataSet می تواند , DataSet يک ارايه ی ٢ بعدی فرض کند وداده ھا را از آن بر اين اساس استخراج کند.اين خاصيت انقدر انعطاف پذير است که حتی می توانيدبه جای عدد ٢ در آن از نام ستون نيز استفاده کنيد:

Response.Write(ds.Tables(“loan”).Rows(2)(“branch_name”).ToString &
(“<br>”

 

که در اينجا مقدار سطر دوم از ستون Branch_name نمايش داده می شود.برای قرار دادن يک جدول ديگر در DataSet می توانيد از خاصيت SelectCommand شی DataAdapter استفاده کنيد به اين صورت که يک Query String جديد به آن نسبت داده و آنرا در DataSet قرار دھيد.در زير ما يک Query String ديگر به شی DataAdapter نسبت داده ايم که تمامی عناصر يکجدول ديگر است:

“adapter.SelectCommand.CommandText = “SELECT * FROM depositor

حالا برای Add کردن آن به DataSet  کافی است مثل قبل عمل کنيم با اين تفاوت که نامی ديگر به آن بدھيم:

 

(“Adapter.Fill(ds, “depositor

حالا شی DataSet حاوی دو جدول است که به تفکيک نام,قابل دسترسی ھستند.در زير تابعی را می بينيدکه دو جدول را در DataSet قرار داده و شی DataSet حاصل را بر می گرداند:

Public Function aaa() As DataSet
Dim cs As String =
ConfigurationManager.ConnectionStrings(“aaa”).ConnectionString
Dim con As New SqlConnection(cs)
“Dim cmd1 As String = “SELECT * FROM branch
“Dim cmd2 As String = “SELECT * FROM account
(Dim ad As New SqlDataAdapter(cmd1, con
Dim ds As New DataSet
Try
()con.Open
(ad.Fill(ds, 0
ad.SelectCommand.CommandText = cmd2
ad.Fill(ds, 1
Catch ex As Exception
(Response.Write(ex.Message
Finally
()con.Close
End Try
Return ds
End Function

براگرفتن اموزش بیشتر این قسمت طراحی سایت با asp.net قسمت DataSet Object بر روی این لینک کلیک کنید.

اشتراک گذاری پست

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *