12-08-19, 03:12 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في نقاش في احدى مواضيع المنتدى لاول مرة افكر كيف ممكن ان اصل او ان اعرف الموضع الذي فيه نتيجة البحث في الـDataTable
سابقا كنت استخدم جملة For هكذا
PHP كود :
for i as integer=0 to dt.rows.count-1
dim t as string=dt(i)(عمود الاسماء او المراد البحث ضمنه)
if t=any thing to search for
bindingcontext(dt).position=i
exit for
next
والان مع الكود الافضل .
الدالة:
PHP كود :
Private Function Search(ByVal t As String) As Integer
Dim sql As String = ""
If IsNumeric(t) Then
sql = "tid=" & Val(t) & ""
ElseIf IsDate(t) Then
sql = "dob ='#" & CDate(t).ToShortDateString & "#'"
Else
sql = "tname='" & t & "'"
End If
If dt.Select(sql).Count > 0 Then
Dim i As DataRow
i = dt.Select(sql).Single
Return dt.Rows.IndexOf(i)
Else
Return Nothing
End If
End Function
طريقة استخدامها كالتالي:
PHP كود :
Dim s As String = InputBox("أكتب ماتريد البحث عنه")
BindingContext(dt).Position = Search(s)
pos()
الاجراء pos اضافي.
و كل عام و انتم بخير.
على فكرة هذه الدالة تناسب اذا عملت Binding للادوات ومن غيرها لن تحصل على نتيجة.
اساس الفكرة هو الانتقال لموضع النتيجة.