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

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

كود :
con.open
dim dt=con.getschema("tables",{nothing,nothing,nothing}) 'هذا السطر
for each r in dt.rows
msgbox(r("table_name"))
next
con.close
الكود أعلاه يجلب أسماء الجداول لقاعدة بيانات و يضعها فى datatable و يعرضها

ولكن هناك مشكلة 

لأن هذا الكود لاحظت أنه يسبب توقف البرنامج فى بعض الأحيان ولا أعرف السبب

فأرجو الإفادة بطريقة أخرى لعرض أسماء الجداول

وشكرا
هذا الامر يقوم باستدعاء قواعد البانات الموجودة بالسيرفر ويضعها في كومبوبوكس
بامكانك الاستفادة من الكود حسب ما تريد
كود :
Public Sub selectdata(comboserver As ComboBox, combodatabase As ComboBox)

       combodatabase.Items.Clear()

       Dim cn As New SqlConnection("server=" & comboserver.Text & "; database = master ; integrated security=true ")
       Dim da As New SqlDataAdapter("select name from sys.databases ", cn)
       Dim dt As New DataTable
       da.Fill(dt)

       For i As Integer = 0 To dt.Rows.Count - 1
           combodatabase.Items.Add(dt.Rows(i)("name").ToString)
       Next
   End Sub

وهذا امر لجلب اسماء الجداول من قاعدة البيانات
استفيد ايضا" من الكود

كود :
Public Sub BtnGetTable(combodata As ComboBox, listetable As DataGridView)

       dt.Clear()

       Dim serverconnection As ServerConnection = Nothing
       If combodata.Text = Nothing Then

           MessageBox.Show("you dont choose data base", "alert", MessageBoxButtons.OK, MessageBoxIcon.Warning)

           Exit Sub

       End If
       Dim objCn As New SqlConnection(connectionstring)
       serverconnection = New ServerConnection(objCn)
       Dim server As New Server(serverconnection)
       Dim objTables As TableCollection = server.Databases(DatabaseName).Tables
       If objTables.Count = 0 Then

           MessageBox.Show("no tables", "alert", MessageBoxButtons.OK, MessageBoxIcon.Warning)
           combodata.Focus()

       End If

       cmd = New SqlCommand("SELECT name as 'Name_Table' from dbo.sysobjects WHERE xtype ='u' ORDER BY Name", objCn)
       da = New SqlDataAdapter(cmd)

       da.Fill(dt)

       listetable.DataSource = dt

     
   End Sub
جزاكم الله خيرا
و هل هذا الكود يصلح لقاعدة بيانات oledb أو access ؟ بعد إجراء بعض التعديلات طبعا ؟
(04-01-23, 12:28 AM)mmaalmesry كتب : [ -> ]جزاكم الله خيرا
و هل هذا الكود يصلح لقاعدة بيانات oledb أو access ؟ بعد إجراء بعض التعديلات طبعا ؟

كود :
 Dim SchemaTable As DataTable

       'Connect to the database
       Dim conn As New System.Data.OleDb.OleDbConnection(ConnString)

       Try
           ListBox1.Items.Clear()

           conn.Open()

           'Get table and view names
           SchemaTable = conn.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
                   ListBox1.Items.Add(SchemaTable.Rows(int)!TABLE_NAME.ToString())
               End If
           Next

       Catch ex As Exception
           MessageBox.Show(ex.Message.ToString(), "Data Load Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
       End Try

       conn.Close()