تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
طريقة بحث سهلة (2)
#1
بسم الله الرحمن الرحيم
السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
لقد تناولنا في المثال السابق طريقة بحث سهلة على مستوى الحقول التي تحتوي قيم نصية، أما في هذا المثال سنضيف الحقول التي تحتوي على قيم من نوع (تاريخ).

* قاعدة البيانات بعنوان MyDB من نوع Microsoft Access
* الجدول بعنوان tblPerson
* الحقول : ID / MyDate / Fname / Lname / Address

صورة عن تصميم الجدول في قاعدة البيانات :
   

صورة عن تصميم المشروع في VB.NET :
   

الأكواد :
قم بالإعلان عن المتغيرات التالية :
PHP كود :
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MyDB.accdb")
 
   Dim sqlstr As String "Select * From tblPerson"
 
   Dim da As OleDbDataAdapter
    Dim dt 
As New DataTable 

عند الحدث load:
PHP كود :
da = New OleDbDataAdapter(sqlstrcon)
 
       dt.Clear()
 
       da.Fill(dt)

 
       Me.DGVSearch.DataSource dt 

في زر الأمر btnSearch :
PHP كود :
Dim Query As String "Select * From tblPerson Where 1=1"

 
       If txtStartDate.Text <> "" Then
            Query 
Query " AND MyDate >= #" txtStartDate.Text "#"
 
       End If


 
       If txtEndDate.Text <> "" Then
            Query 
Query " AND MyDate <= #" txtEndDate.Text "#"
 
       End If


 
       If txtFname.Text <> "" Then
            Query 
Query " AND Fname = '" txtFname.Text "'"
 
       End If


 
       If txtLname.Text <> "" Then
            Query 
Query " AND Lname = '" txtLname.Text "'"
 
       End If


 
       If txtAddress.Text <> "" Then
            Query 
Query " AND Address = '" txtAddress.Text "'"
 
       End If

 
       Dim cmd As New OleDbCommand(Querycon)
 
       da = New OleDbDataAdapter(cmd)
 
       dt.Clear()
 
       da.Fill(dt)

 
       Me.DGVSearch.DataSource dt 

في زر الأمر btnReset :
PHP كود :
da = New OleDbDataAdapter(sqlstrcon)
 
       dt.Clear()
 
       da.Fill(dt)

 
       DGVSearch.DataSource dt

        Me
.txtStartDate.Clear()
 
       Me.txtEndDate.Clear()
 
       Me.txtFname.Clear()
 
       Me.txtLname.Clear()
 
       Me.txtAddress.Clear() 

التطبيق :
مثال 1 :
قبل البحث :
   

بعد البحث :
   

مثال 2 :
قبل البحث :
   

بعد البحث :
   

مرفق المشروع :
.rar   khodor - AdvancedSearch.rar (الحجم : 89.62 ك ب / التحميلات : 235)
أتمنى لكم التوفيق

سؤال : ما عدد الناجحين أو الراسبين في DataGrid؟
قم بإنشاء إجرائين مستقلين وليكن إسم الإجراء الأول Sub CountSuccess() والإجراء الثاني Sub CountFailed():
الإجراء الأول :
PHP كود :
Sub CountSuccess()
 
       Dim Counter As Integer
        For i 
0 To DGVSearch.Rows.Count 1
            If Not IsDBNull
(DGVSearch.Rows(i).Cells(5).ValueThen
                If DGVSearch
.Rows(i).Cells(5).Value "Success" Then
                    Counter 
Counter 1
                    lblSuccess
.Text Counter
                End 
If
 
           End If
 
       Next
    End Sub 

الإجراء الثاني :
PHP كود :
Sub CountFailed()
 
       Dim Counter As Integer
        For i 
0 To DGVSearch.Rows.Count 1
            If Not IsDBNull
(DGVSearch.Rows(i).Cells(5).ValueThen
                If DGVSearch
.Rows(i).Cells(5).Value "Failed" Then
                    Counter 
Counter 1
                    lblFailed
.Text Counter
                End 
If
 
           End If
 
       Next
    End Sub 

ثم قم باستدعاء الإجرائين من خلال الحدث Load:
PHP كود :
 Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        da 
= New OleDbDataAdapter(sqlstrcon)
 
       dt.Clear()
 
       da.Fill(dt)

 
       Me.DGVSearch.DataSource dt
        CountFailed
()
 
       CountSuccess()

 
   End Sub 

تطبيق :
   

مرفق المشروع بعد التحديث :
.rar   khodor1 - AdvancedSearch.rar (الحجم : 91.43 ك ب / التحميلات : 208)
أتمنى لكم التوفيق

أيضا يمكن استخدام هذه الطريقة في استخراج عدد الناجحين أ الراسبين من خلال Linq to Sql
PHP كود :
Sub CountSuccess()
        
Dim count = (From rw As DataGridViewRow In DGVSearch.Rows Where rw.Cells(5).Value "Success"
                     
Select rw.Cells(0).Value).Count()

        
lblSuccess.Text count
    End Sub

    Sub CountFailed
()
        
Dim count = (From rw As DataGridViewRow In DGVSearch.Rows Where rw.Cells(5).Value "Failed"
                     
Select rw.Cells(0).Value).Count()

        
lblFailed.Text count
    End Sub 
أتمنى لكم التوفيق
الرد }}}}
#2
الف شكرا استاذذي الكريم
الرد }}}}
تم الشكر بواسطة:
#3
بالتوفيق إن شاء الله .
الرد }}}}
تم الشكر بواسطة:
#4
شكرا جزيلا
سأعود قريباً ان شاء الله

الرد }}}}
تم الشكر بواسطة: yasser_72 , yasser_72


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] افضل طريقة لجعل برنامجى يشتغل على جهاز شخص واحد فقط memosh 10 1,777 30-08-16, 08:20 PM
آخر رد: nayefacc
  طريقة بحث سهلة khodor1985 4 573 12-01-16, 07:49 PM
آخر رد: AmMo
  [مثال] طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ myalsailamy 2 407 14-12-15, 09:50 PM
آخر رد: عدنان الشمري
  [مثال] طريقة التحقق من وجود نص عربي ضمن نص myalsailamy 1 244 10-12-15, 07:06 PM
آخر رد: boudyonline
  [مشروع] طريقة جلب فيديوهات Videos قناة على يوتيوب youtube سعود 1 671 05-08-15, 03:08 PM
آخر رد: سعود
  [مثال] عمل تصفية للبيانات بطريقة سهلة ممدوح الخطيب 3 919 21-06-15, 01:07 AM
آخر رد: raaddawood
  [مشروع] آلة حاسبة عن طريقة مناداة الدالة من ملف dll سعود 3 650 26-03-15, 02:01 PM
آخر رد: سعود
Information [مشروع] طريقة تصميم برنامج قواعد بيانات يحتوي على علاقات بين الجداول (باستخدام الكود فقط) Mohamad Anan 7 4,909 15-02-14, 09:56 PM
آخر رد: yemen_design

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم