الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عرض النتائج في DataGrid

مغلق
بدأه hazzoom في 10 أغسطس 2005 · 7 رد · 894 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أريد عرض نتائج البحث عن طريق command و reader في datagrid كيف ؟؟؟

علما بأن البحث يكون بجملة select ,,

reader=command.executereader
while reader.read
أريد عرض النتائج في datagrid 
end while
#2

اخ حازووم استخدم الـ Dataset

وبلاش وجع دماغ :D

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

بس أنا عايز أعملها من غير Dataset لأنه بيستهلك الذاكره وأنا البرنامج اللي بعمل فيه تقيل طبيعي ومش ناقص ...,,,

أنا لقيت عندي غلط في جملة select ما هو ؟؟

SELECT * FROM info WHERE" & ComboBox1.SelectedItem & "=" & TextBox16.Text

علي أساس ان ال combo فيها أسماء الأعمده اللي بالجدول وال textbox فيه ما تبحث عنه ,,,

كمان مره :

اقتباس
أريد عرض نتائج البحث عن طريق command و reader في datagrid كيف ؟؟؟

علما بأن البحث يكون بجملة select ,,

reader=command.executereader
while reader.read
أريد عرض النتائج في datagrid 
end while

أرجوكم اللي يعرف يساعدني سواء في جملة ال sql أو عرض نتائج البحث في datagrid ,,,

جزاكم الله خيرا ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 10 أغسطس 2005 في 20:54

#4

السلام عليك

أعتقد أن الخطأ في جملة الاستعلام هو أن نوعية الحقل المراد البحث في هو من نوع text، أيضا لم تترك مسافة بين WHERE و المزدوجتين " تصبح جملة الاستعلام كالتالي

اقتباس
SELECT * FROM info WHERE " & ComboBox1.SelectedItem & "='" & TextBox16.Text & "'"      'SQL

بالتوفيق إن شأء الله

#5

السلام عليكم

هنالك طريقة للعزوف عن الـ dataSet في تعبئة الـ DataGrid

الحل هو إستخدام القالب ArrayList كما هو منوه عليه في الـ MSDN

و الحل التفصيلي يكون كالتالي

لنفترض أن لدينا جدول من عامودين ID و Name و نريد أن نضعهم في DataGrid بإستخدام العنصر DataReader

في هذه الحالة سننشئ قالب Class باسم مثلاً Employees تكون فيه خاصيتين الاولى للـ ID و الثانية للـ Name

و تكون تقرأ و تكتب فالقراءة ستكون مدمجة مع القيم التي ستجلب من الـ DataReader بهذا الشكل يتم بِناءه

Public Class Employees

    Private m_Name As String
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set(ByVal Value As String)
            m_Name = Value
        End Set
    End Property
    Private m_ID As String
    Public Property ID() As String
        Get
            Return m_ID
        End Get
        Set(ByVal Value As String)
            m_ID = Value
        End Set
    End Property
End Class

هذا القالب Class سيكون nested Class اي يركن تحت قالب النموذج form .

الان في النموذج form و بالتحديد في الحدث load سنقوم بتعريف مصفوفة من نوع ArrayList بهذا الشكل

Dim ArrLstEmployee As New ArrayList

ثم نقوم بتعريف مصفوفة من نوع القالب Employees بهذا الشكل

 Dim Em() As Employees

ثم نعرف العناصر اللازمة للإتصال بقاعدة البيانات كما هو مألوف بهذا الشكل

 Dim sql As String = "SELECT * FROM myTable"
            Dim cnn As New OleDbConnection
            cnn.ConnectionString = _
         "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
          Application.StartupPath & "\myData.mdb"
            Dim cmd As New OleDbCommand(sql, cnn)
            cnn.Open()
            Dim rdr As OleDb.OleDbDataReader = cmd.ExecuteReader
            While rdr.Read()

الان عندما يقوم الـ DataReader بالقراءة سنقوم بإعادة تعريف المصفوفة بإستخدام الكلمة المحجوزة في اللغة وهي ReDim

هذه الكلمة تمكننا من إعادة بناء المصفوفة كحجم length

ولن نحتاج إلى الكلمة preserve و التي تقوم بالإحتفاظ بالقيم السابقة في المصفوفة و السبب بسيط كوننا في

سياق النصوص البرمجية قمنا بحفظ تلك القيم عن طريق إضافتها في المصفوفة ArrLstEmployee كما ستشاهد ذلك في النصوص

البرمجية التالية و بهذا الشكل بالتحديد

  ArrLstEmployee.Add(Em(0))

السبب الذي جعلنا نعيد بناء المصفوفة هو أننا لا نعرف عدد الصفوف القادمة كما ذكرت آنفاً

و ستلاحظ أنني أقوم ببناء المصفوفة Em() ليكون طولها صف واحد فقط و أكرر هذا البناء كل مرة بعد حفظ قيمها.

ثم بعد البناء نقوم بعملية الإستنساخ ( المهمة) لأننا نتعامل مع قالب المهم أنه يكون بهذا الشكل

 ReDim Em(0)
                Em(0) = New Employees
                Em(0).Name = rdr("userName").ToString
                Em(0).ID = rdr("userID").ToString
                ArrLstEmployee.Add(Em(0))
            End While
            rdr.Close()
            cnn.Close()

بعد ذلك عندما يرجع السلوك Read القيمة False ستنتهي الحلقة بجلب كل القيم من العامودين

لذلك سنقوم الان بإسناد المصفوفة لتكون بمثابة الـ DataSource للعنصر DataGrid بهذا الشكل المألوف

  dg.DataSource = ArrLstEmployee

شاهد الملف المرفق ( بالتوفيق للجميع ) و بالتوفيق يا حاااااااااااازم وليس حساااااااااااام B)

السلام عليكم

DataGridBoundToanArrayList.zip

في المثال يتضح المقال

#7

اخ حازووم لا تخاف على الذاكرة لانك بعد ما تجلب البيانات وتحطها فى dataset ,وبعدين تخلى مصدر البيانات للdatagridهو datasetتقدر تلغيها من الذاكرة

dim con as new oledb.oledbconection(your conection string)
dim ds as new dataset
try
dim da as oledb.oledbdtataadapter=new oledb.oledbdataadapter("select * from table",con)
ds.clear
da.fill(ds,"table")
datagrid.datasource=ds.tables("table")
catch ex as exption
msgbox(ex.message")
finally
con.close
ds.dispose
da.dispose

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…