السلام عليكم جميعا
كما يفهم من السؤال!! القضية كالتالي:
عندي كم كبير من المعلومات تعود الي من قاعدة البيانات و احفظها في1 DataSet. لابد من فلترة او ترشيح هذا الداتاسيت و لا توجد طريقة لعمل ذلك الا اذا حفظت قيمة الداتاسيت في Dataview. الان احتاج الى ارجاع الـ XML من الـDataview و بالتالي علي ان ارجع الـ Dataview المفلترة الى 2 DataSet من جديد....
هل من حل لديكم و مشكلتي يمكن ان تفهم بمجموعة الاكواد هذه
ملاحظة ... لابد من حفظ الـDataSet 1 في الذاكرة قبل عملية الفلترة كما سيتبين في الكود التالي:
Code # 1
Public Function LoadAllTerminals(ByVal reportlevel As enReportLevel) As DataView
Dim dsAll As System.Data.DataSet
Dim dView As System.Data.DataView
Dim SQL As String
dsAll = _Cache("AllTerminalsRollupGroups")
If dsAll Is Nothing Then
dsAll = New DataSet
SQL = "SELECT * FROM rpt.tbr_group_lookup ORDER BY GROUP_NAME ASC"
dsAll = da.DSFromSQL(SQL)
_Cache("AllTerminalsRollupGroups") = dsAll
'_Cache.Insert("All", dsAll, Nothing, _CacheExp, _Cache.NoSlidingExpiration)
End If
dView = dsAll.Tables(0).DefaultView
Select Case reportlevel
Case enReportLevel.enReLevel_Terminals
dView.RowFilter = "Group_Level = 1 and BITS_GRP_FLG = 1"
Case enReportLevel.enReLevel_Billing
dView.RowFilter = "Group_Level = 1 and BILLING_FLG = 1"
Case enReportLevel.enReLevel_Implementation
dView.RowFilter = "Group_Level = 1 and IMP_FLG = 1"
Case enReportLevel.enReLevel_BitsRollup
dView.RowFilter = "Group_Level = 2"
Case enReportLevel.enReLevel_RORollup
dView.RowFilter = "Group_Level = 3"
End Select
Return dView
End FunctionCode #2
Private Function RaiseCallbackEvent(ByVal GroupSelection As String) As String Try _oRpt = New ROVER_BusinessObject.Report(Treeview1.SelectedNode.ID.ToString, Me.Context) Dim SQL As String Dim newDView As System.Data.DataView Dim ds As New DataSet newDView = _oRpt.LoadAllTerminals(_oRpt.Get_EnumType_enReportLevel(GroupSelection)) ' هنا اريد ان احفظ ما يوجد بداخل هذه الـ newDView ' بداخل داسيت جديد Return ds.GetXml Catch ex As Exception Dim test As String = ex.Message End Try End Function
