منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عمل داله عامة لاستعلام يحتوي علي بارميترز
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
محتاج دالة عامة علي مستوي المشروع لعمل استعلام يعتمد علي بارميترز.
تفضل هذا مثال مشروح عما تريده .

و هذا الكود المشروح :

PHP كود :
'عمل مديول ووضع فانكشن به'
Module ExecuteQuery
    
'عمل فانكشن يعود بـ داتاتيبل معبئة بالسجلات'
 
   ''' <summary>'
 
   ''' تحمييل السجلات في داتا تيبل'
 
   ''' </summary>'
 
   ''' <param name="TableName">اسم الجدول</param>'
 
   ''' <param name="ColumnName">اسم العامود</param>'
 
   ''' <param name="ParamName">قيمة الباراميتر</param>'
 
   ''' <param name="SearchLike">Like هل تريد البحث بتعليمة</param>'
 
   ''' <returns>داتا تيبل</returns>'
 
   ''' <remarks>لا يوجد</remarks>'
 
   Public Function EXCQuery(TableName As StringColumnName As StringParamName As StringSearchLike As Boolean) As DataTable
        
'تعريف متغيير للاستعلام'
 
       Dim StrSQL As String String.Empty
 
       'تعريف شرط إذا كان الاستعلام Like'
 
       If SearchLike True Then
            
'تعريف شرط إذا كان الباراميتر فارغ'
 
           If ParamName String.Empty Then
                
'كتابة الاستعلام'
 
               StrSQL "Select * From " TableName
                
'تعريف شرط إذا كان الباراميتر غير فارغ'
 
           ElseIf Not ParamName String.Empty Then
                
'كتابة الاستعلام'
 
               StrSQL "Select * From " TableName " Where " ColumnName " Like @ParamName"
 
           End If
 
       ElseIf SearchLike False Then
            
'تعريف شرط إذا كان الباراميتر فارغ'
 
           If ParamName String.Empty Then
                
'كتابة الاستعلام'
 
               StrSQL "Select * From " TableName
                
'تعريف شرط إذا كان الباراميتر غير فارغ'
 
           ElseIf Not ParamName String.Empty Then
                
'كتابة الاستعلام'
 
               StrSQL "Select * From " TableName " Where " ColumnName " =@ParamName"
 
           End If
 
       End If
 
       'كود الاتصال غيير بما يتناسب مع اسم قاعدة بياناتك و اسم مستخدمك و كلمة مرورك'
 
       Dim Con As New SqlClient.SqlConnection("Server =(local);database=TestAsemXT;integrated security=false;User ID=AsemShahen;Password=12345679")
 
       'تعريف داتا أدبتر'
 
       Dim da As New SqlClient.SqlDataAdapter
        
'فتح الاتصال مع قاعدة البيانات'
 
       If Con.State ConnectionState.Closed Then Con.Open()
 
       'تعريف سيكول كوماندو وضع الاستعلام و كود الاتصال به'
 
       Dim cmd As New SqlClient.SqlCommand(StrSQLCon)
 
       'تعريف شرط إذا كان الاستعلام Like'
 
       If SearchLike True Then
            
'تعريف باراميتر'
 
           cmd.Parameters.AddWithValue("@ParamName""%" ParamName "%")
 
       ElseIf SearchLike False Then
            
'تعريف باراميتر'
 
           cmd.Parameters.AddWithValue("@ParamName"ParamName)
 
       End If
 
       'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'وضع الكوماند بـ الداتا أدبتر'
 
       da.SelectCommand cmd
        
'تحميل السجلات في الداتاتيبل'
 
       da.Fill(dt)
 
       'إغلاق الاتصال'
 
       If Con.State ConnectionState.Open Then Con.Close()
 
       'العودة بـ الداتاتيبل المعبئة'
 
       Return dt
        
'إغلاق الفانكشن'
 
   End Function
 
   'إغلاق الموديول'
End Module

'كيفية إستخدام الكود في الفورم'
Public Class Form1
    
'كود تحميل الفورم'
 
   Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        
'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'تعبئة الداتاتيبل الجديدة من الفانكشن'
 
       dt EXCQuery("TestTable""FullName"""False)
 
       'تعبئة داتا غريد فيو من الداتاتيبل'
 
       DataGridView1.DataSource dt
    End Sub
    
'بحث حسب القيمة المعطاة للبراميتر'
 
   Private Sub FillTableWithParamSearch_Click(sender As ObjectAs EventArgsHandles FillTableWithParamSearch.Click
        
'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'تعبئة الداتاتيبل الجديدة من الفانكشن'
 
       dt EXCQuery("TestTable""FullName"Txt_Param.TextFalse)
 
       'تعبئة داتا غريد فيو من الداتاتيبل'
 
       DataGridView1.DataSource dt
    End Sub
    
'تحميل كامل الجدول'
 
   Private Sub BtnFillAllTable_Click(sender As ObjectAs EventArgsHandles BtnFillAllTable.Click
        
'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'تعبئة الداتاتيبل الجديدة من الفانكشن'
 
       dt EXCQuery("TestTable""FullName"""False)
 
       'تعبئة داتا غريد فيو من الداتاتيبل'
 
       DataGridView1.DataSource dt
    End Sub
    
'تعليمة Like بحث حسب القيمة المعطاة للبراميتر'
 
   Private Sub FillTableWithParamSearchLike_Click(sender As ObjectAs EventArgsHandles FillTableWithParamSearchLike.Click
        
'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'تعبئة الداتاتيبل الجديدة من الفانكشن'
 
       dt EXCQuery("TestTable""FullName"Txt_Param.TextTrue)
 
       'تعبئة داتا غريد فيو من الداتاتيبل'
 
       DataGridView1.DataSource dt
    End Sub
End 
Class