فوریه DataSet Object | قسمت 7
با سری اموزش های طراحی وب سایت الو وب در خدمت شما هستیم و ادامه قسمت 6 فوریه .
متغير Row ھم که در حلقه ی For تعريف شده بود.و ما از خاصيت GetChildRows از آن در وب سایت استفاده کرده ایم و آرگومان ورودی آن را که از نوع relation است را نام متغير (rel) قرار داديم و آن را درون متغيری از نوع DataRow قرار داديم البته از نوع ارايه ای چون GetChildRows چند سطر را برمی گرداند نه يک سطر.حالا اين چند سطر را با حلقه ی For وEach نمايش می دھيم:
For Each childRow As DataRow In cr
<“Response.Write(childRow(“account_number”) & “<br
Next
(“dss.Tables(“branch”).Columns(“branch_name
(“dss.Tables(“account”).Columns(“branch_name”)
(dss.Relations.Add(rel
For Each row As DataRow In dss.Tables(“branch”).Rows
<“Response.Write(row(“branch_name”) & “<br>”)
(Dim cr As DataRow() = row.GetChildRows(rel
For Each childRow As DataRow In cr
<“Response.Write(childRow(“account_number”) & “<br>
Next
Next
در کل اگر کمی دقت کنيد می بينيد بسيار ساده است.دو خط اول که تعريف relation و Add کردن آن به DataSet بود.در حلقه ی For اول ھم تمام سطر ھا پيمايش می شد و در ھر پيمايش نام ستون Branch_name آن سطر چاپ می شد.سپس متد GetChildRows که متدی جزو ھمان سطری است که در حلقه ی بالاييش پيمايش شده ,تمام سطرھايی را که با ان سطر مورد نظر رابطه دارند را به وسيله ی آرگومان وروديش که ھمان رابطه بود پيدا می کند.سپس حلقه ی For داخلی سایت ھم آن ھا را نمايش می دھد.در حقيقت با توجه به جداول بالا ابتدا emam چاپ شده سپس با متد GetChildRows تمام سطر ھايی از جدول بعدی که با emam رابطه دارند (که سطر ھای ١و ٤و ٥) ھستند انتخاب شده و نمايش داده می شوند.
پس به آرايه بودن متغير cr از نوع DataRow دقت کنيد چون يک سطر نيست بلکه چند سطر است.سوالی که پيش می آيد اين است که کاربرد نام رابطه که در اينجا MyRelation است کجاست؟
ما يک نام از نوع String به ان داديم و کاربردش در خود دستورات Sql است.جلوتر در قسمت DataView طرز کار و کاربرد ان را می بينيد. نتيجه ی يک رابطه ی معمولی را نمی توان به صورت عادی در GridView نمايش داد به ھمين دليل از دو حلقه ی For استفاده کرديم که با کمی تمرين و تکرار ملکه ی ذھنتان می شود .حتما تا اينجا با طرز کار WHERE در Sql آشنا شده ايد.شما با متد Select از شی DataTable می توانيد يک WHERE به Query خود اضافه کنيد .
البته نه در QuerySql بلکه در صفحه ی VB.NET رست است که اين متد عضوی از شی . DataTable است .ولی چون وظيفه اش انتخاب تعدادی سطر است مقدار باز گشتی ان از نوع DataRow می باشد.برای مثال فرض کنيد که کد ما به صورت زير باشد:
(Dim con As New SqlConnection(cs)
(Dim adp As New SqlDataAdapter(“Select * From customer”, con)
Dim ds As New DataSet
(“<Response.Write(dr(“customer_name”) & “<br>
(“<Response.Write(dr(“customer_street”) & “<br>
(“<Response.Write(dr(“customer_city”) & “<br>
(“<Response.Write(“=———————-=” & “<br>
For Each dr As DataRow In mr
(“<Response.Write(dr(“customer_name”) & “<br
(“<Response.Write(dr(“customer_city”) & “<br
(“<Response.Write(“=———————-=” & “<br
دیدگاهتان را بنویسید