اخي البديل الاسلامي اعتذر عن تاخري بالرد وعن انقطاعي في المنتدى الفترة السابقة
بخصوص طلبك تقدر تستخدم داتا جريد او اي ادوات اضافية تقدمها لك مايكروسفت لكن انا انصحك تستخدم الطريقة التقليديه افضل لك وتعطيك حرية في التحكم افضل
انت عندك صفحتين صفحة كود ال vb وصفحة التصميم الي هي كود ال html
في صفحة ال vb قم بجلب جميع المعلومات التي تريدها من قاعدة البيانات
مثلا نفرض انك تريد جلب معلومات الحسابات البنكية من جدول البنوك في قاعدة البيانات
تكون جملة ال sql لجلب البيانات هي
كود:
SQLStr = "select ID,Country,BankName,AccountNumber,AccountOwnerName from BankInfo"
نقوم بافراغ النتائج في داخل DataSet
كود:
Dim dsBanks As New DataSet
SQLStr = "select ID,Country,BankName,AccountNumber,AccountOwnerName from BankInfo"
Cmd.CommandText = SQLStr
Cmd.Connection = Con
Con.Open()
Adap.SelectCommand = Cmd
Adap.Fill(dsBanks)
Con.Close()
الان كل معلومات البنوك موجوده لدينا في داخل داتا ست اسمها dsBanks
الي رجع عندنا هو حقول من الجدول وترتيبها في ال dsBanks يكون بنفس طريقة ترتيبها في قاعدة البيانات
حيث ان اول حقل موجود في ال dsBanks يكون رقمه صفر واخر حقل موجود يكون رقمه
كود:
dsBanks.Tables(0).Rows.Count - 1
حيث ان sBanks.Tables(0).Rows.Count هذه تعيد لنا عدد الحقول التي تم ايجادها في الجدول واعادتها في ال dsBanks
الان نقوم بادخال المستخدم في داخل حلقة تكرارية بدايتها من الصفر ونهايتها هو عدد الحقول في ال dsBanks منقوص منه واحد
ونقوم في داخل الحلقة بافراغ معلومات كل بنك بشكل مستقل في داخل ViewState
مثلا في الحلقة الاولى الي رقم ال I بها يكون صفر يكون لدينا مثلا
ViewState("ID0") = 7
ViewState("Country0") = JORDAN
يعني ان ال ID رقم الحقل الاول العائد من قاعدة البياناتلجدول الحسابات البنكية هو 7
وكذلك اسم الدولة للحقول الاول هو JORDAN
وفي المرة الثانيه التي يدخل بها الحلقة تكون ال I تساوي واحد فيكون لدينا
ViewState("ID1") = 5
ViewState("Country1") = KSA
اي ان ال ID الثاني العائد من قاعدة البيانات لجدول الحسابات البنكية هو 5
وكذلك اسم الدولة للحقل الثاني هو KSA
كود الحلقة التكرارية هو
كود:
Dim I As Integer = Nothing
ViewState("INum") = dsBanks.Tables(0).Rows.Count - 1
For I = dsBanks.Tables(0).Rows.Count - 1 To 0 Step -1
ViewState("ID" & I) = dsBanks.Tables(0).Rows(I)(0)
ViewState("Country" & I) = dsBanks.Tables(0).Rows(I)(1)
ViewState("BankName" & I) = dsBanks.Tables(0).Rows(I)(2)
ViewState("AccountNumber" & I) = dsBanks.Tables(0).Rows(I)(3)
ViewState("AccountOwnerName" & I) = dsBanks.Tables(0).Rows(I)(4)
Next
لاحظ اننا خزنها رقم نهاية الحلقة في ViewState("INum") وهذا لكي نستخدمه في صفحة ال html لاننا سوف نقوم هناك بعمل حلقة اخرى لافراغ المعلومات وعرضها للمستخدم
وهكذا بعد نهاية تنفيذ الحلقة يكون لدينا عدد من المتغيرات من نوع ViewState تحتوي كلها على جميع المعلومات العائده من قاعدة البيانات من جدول الحسابات البنكية
الان انتهى عملنا في صفحة كود ال vb
وننتقل الي صفحة التصميم في كود ال html
نقوم بافراغ جميع المعلومات التي عادت لدينا في داخل جدول يتكون مصفوف واعمده باستخدام كود html
ملاحظة في صفحة ال html يمكنك كتابة كود vb بان تقوم بكتابة بين وسمين
<%
%>
وسوف نستخدمها في عمل حلقة تكراريه لافراغ النتائج
كود صفحة ال html هو
كود:
<%
If ViewState("INum") < 0 Then
Response.Write("<b>" & "لم يتم العثور على معلومات" & "</b>")
GoTo EndPoint
End If
Dim IAll As Integer = Nothing
Response.Write("<table border='1' cellpadding='0' cellspacing='0'>")
Response.Write("<tr>")
Response.Write("<td align='center' class='CenterMenuTDBody' Valign='Top'>")
Response.Write("<b>" & "رقم الحقل" & "</b>")
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody' Valign='Top'>")
Response.Write("<b>" & "اسم الدولة" & "</b>")
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody' Valign='Top'>")
Response.Write("<b>" & "اسم البنك" & "</b>")
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody' Valign='Top'>")
Response.Write("<b>" & "رقم الحساب" & "</b>")
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody' Valign='Top'>")
Response.Write("<b>" & "اسم صاحب الحساب" & "</b>")
Response.Write("</td>")
Response.Write("</tr>")
For IAll = ViewState("INum") To 0 Step -1
Response.Write("<tr>")
Response.Write("<td class='CenterMenuTDBody'>")
Response.Write(ViewState("ID" & IAll))
Response.Write("</td>")
Response.Write("<td class='CenterMenuTDBody'>")
Response.Write(ViewState("Country" & IAll))
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody'>")
Response.Write(ViewState("BankName" & IAll))
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody'>")
Response.Write(ViewState("AccountNumber" & IAll))
Response.Write("</td>")
Response.Write("<td align='center' class='CenterMenuTDBody'>")
Response.Write(ViewState("AccountOwnerName" & IAll))
Response.Write("</td>")
Response.Write("</tr>")
Next
Response.Write("</table>")
EndPoint:
%>
اتمنى يكون الشرح واضح