السلام عليكم ورحمة الله وبركاته
كود :
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 ؟ بعد إجراء بعض التعديلات طبعا ؟