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

نسخة كاملة : كيف يتم عرض جدول من قائمة listbox في داتاقريدفيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
لدي قائمة جداول معروضة في listbox أريد عرض الجدول في datagridview
بمجرد الضغط على الجدول المحدد في القائمة

كود :
Sub ImportTableInListBox()
       Dim SchemaTable As DataTable
       Try
           ListBoxTables.Items.Clear()
           con.Open()
           'Get table and view names
           SchemaTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing})
           Dim int As Integer
           For int = 0 To SchemaTable.Rows.Count - 1
               If SchemaTable.Rows(int)!TABLE_TYPE.ToString = "TABLE" Then
                   'Add items to list box
                   ListBoxTables.Items.Add(SchemaTable.Rows(int)!TABLE_NAME.ToString())
               End If
           Next
       Catch ex As Exception
           MessageBox.Show(ex.Message.ToString(), "خطأ في جلب المعلومات", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
       End Try
       con.Close()
   End Sub
كود :
الفكرة أنه لديك
ListBox
فيه أسماء الجداول الموجودة في قاعدة البيانات
(Access).
واريد لما تضغط على أي جدول في الـ  ListBox، يتم تنفيذ استعلام SELECT * FROM tableName، ونربط النتيجة بالـ DataGridView.

هذه محاولة عن طريق. الجوال وربما توجد بعض الأخطاء
نفرض أن اسم الفورم Form1

Imports System.Data.OleDb

Public Class Form1

   ' الاتصال بقاعدة البيانات ... عدل المسار حسب ما هو عندك

   Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB1.accdb;")

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       ' جلب أسماء الجداول في القاعدة وعرضها في ListBox
       con.Open()
       Dim dt As DataTable = con.GetSchema("Tables")
       For Each row As DataRow In dt.Rows
           If row("TABLE_TYPE").ToString() = "TABLE" Then
               ListBox1.Items.Add(row("TABLE_NAME").ToString())
           End If
       Next
       con.Close()
   End Sub

   Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
       If ListBox1.SelectedItem IsNot Nothing Then
           Dim tableName As String = ListBox1.SelectedItem.ToString()
           Dim da As New OleDbDataAdapter("SELECT * FROM [" & tableName & "]", con)
           Dim ds As New DataSet
           da.Fill(ds)
           DataGridView1.DataSource = ds.Tables(0)
       End If
   End Sub

End Class
شكرا لك أخي على الرد لكن الكود لم يشتغل تظهر رسالة الخطأ هذه
System.Data.OleDb.OleDbException: 'Le moteur de base de données Microsoft Access ne peut pas trouver la table ou la requête source « System.Data.DataRowView ». Assurez-vous qu’elle existe et qu’elle est correctement orthographiée.'
عفوا الكود يعمل بشكل جيد
بارك الله فيك أخي مصمم هاوي
وياليت تضيف لي عملية الحذف للجدول من قائمة listebox إن أمكن
(04-09-25, 01:33 PM)ahmedfa71 كتب : [ -> ]عفوا الكود يعمل بشكل جيد
بارك الله فيك أخي مصمم هاوي
وياليت تضيف لي عملية الحذف للجدول من قائمة listebox إن أمكن

حباً وكرامـة
هذا مثال فيه حذف جدول من القائمـة فقط
وحذف جدول من قاعدة البيانات

[attachment=30123]
بارك الله فيك أخي مصمم هاوي