التعامل مع الكائن DataView

اذهب الى الأسفل

التعامل مع الكائن DataView  Empty التعامل مع الكائن DataView

مُساهمة من طرف زهراء في الإثنين نوفمبر 12, 2018 7:03 pm

الكائن DataView يتيح للمطورين إنشاء طرق عرض مختلفة للبيانات المخزنة في جدول قاعدة البيانات ، وهي إمكانية يتم استخدامها غالبًا في تطبيقات ربط البيانات. باستخدام DataView ، حيث يمكنك عرض البيانات في جدول بأوامر فرز مختلفة
وهذا يمنحنا مرونة عالية عند عرض البيانات للمستخدم دون الحاجة الى إعادة ارسال الاستعلامات المختلفة الى قاعدة البيانات ..فالكائن DataView يحتوي فى فهرس index يشير الى سجلات جدول قاعدة البيانات ولا يحتوي على سجلات البيانات نفسها هذا يجعل كائن DataView سريعا فى اداء عمليات التصفية و الفرز و البحث دون استهلاك مساحة كبيرة من الذاكرة 

انشاء الكائن  DataView

الطريقة الاولى : فى وقت التصميم 

لإنشاء DataView في وقت التصميم ، اسحب DataView من Toolbox> Data إلى النموذج الخاص بك. ثم قم بإنشاء كائن DataSet وتعيين الخاصية الجدول DataView في جدول في DataSet المكتوبة كما فى الشكل التالى :

التعامل مع الكائن DataView  Figure-4.55

الطريقة الثانية : باستخدام الشفرة 

يمكننا إنشاء DataView بالشفرة بطريقتين مختلفتين ايضا....


  • استخدام منشئ DataView :يمكن أن يكون منشئ DataView فارغًا على النحو التالى :


الكود:
Dim dv As New DataView()


  • أو يمكن أن يأخذ إما DataTable كوسيطة واحدة 

    الكود:
     Dim dt As DataTable = ds.Tables("Employee")
            Dim dv As New DataView(dt)


  •  أو ياخذ DataTable مع معايير التصفية 


الكود:

Dim dt As DataTable = ds.Tables("Employee")

 Dim dv As New DataView(dt,"FirstName = 'Joe'","FirstName", DataViewRowState.CurrentRows)



  •  إنشاء مرجع إلى خاصية DefaultView من DataTable. 



الكود:
DataView dv = dv.Tables["Employee"].DefaultView;  


الفرز باستخدام الكائن DataView :

يوفر DataView عدة طرق لفرز البيانات وتصفيتها في DataTable:

استخدام الخاصية Sort لتحديد أوامر الفرز الفردية أو المتعددة وتضمين المعلمات ASC (تصاعديًا) و DESC (تنازليًا)...على النحو التالى :
الكود:

DataView view = new DataView(dt);
view.Sort = "name ASC";

فى الكود أعلاه قمنا بفزر العامود name فرزا تصاعديا 

 استخدام خاصية ApplyDefaultSort لتكوين ترتيب فرز تلقائيًا ، بترتيب تصاعدي ، استنادًا إلى عمود المفتاح الأساسي أو أعمدة الجدول. ينطبق ApplyDefaultSort فقط عندما تكون الخاصية Sort هي مرجع فارغ أو سلسلة فارغة ، وعندما يكون للجدول مفتاح أساسي محدد.


التصفية باستخدام الكائن DataView :

استخدام خاصية RowFilter لتحديد مجموعات فرعية من الصفوف استناداً إلى قيم الأعمدة الخاصة بهم....على النحو التالى كمثال 
الكود:
dv.RowFilter = "Col < 3";


مثال أخر كامل لتصفية البيانات

الكود:
[right][/right]
[right]Imports System.Data.SqlClient
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim connetionString As String
        Dim connection As SqlConnection
        Dim command As SqlCommand
        Dim adapter As New SqlDataAdapter
        Dim ds As New DataSet
        Dim dv As DataView
        Dim sql As String
      connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"
        sql = "Select  * from product"
        connection = New SqlConnection(connetionString)
        Try
            connection.Open()
            command = New SqlCommand(sql, connection)
            adapter.SelectCommand = command
            adapter.Fill(ds, "Filter DataView")
            adapter.Dispose()
            command.Dispose()
            connection.Close()

            dv = New DataView(ds.Tables(0), "Product_Price < = 500", "Product_Name", DataViewRowState.CurrentRows)
            DataGridView1.DataSource = dv

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class 
[/right]

كيفية البحث عن صف في DataView


يمكننا البحث في DataView وفقًا لقيم مفتاح الفرز باستخدام الطريقة Find. حيث ترجع طريقة البحث عددًا صحيحًا بفهرس DataRowView الذي يطابق معايير البحث.

مثال :

الكود:

Private Sub FindValueInDataView(table As DataTable)
    Dim view As DataView = New DataView(table)
    view.Sort = "CustomerID"

    ' Find the customer named "DUMON" in the primary key column
    Dim i As Integer = view.Find("DUMON")
    Console.WriteLine(view(i))
End Sub
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 395
النقاط : 664
التقيم : 53
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى