جلب أسماء الجداول لقاعدة بيانات - mmaalmesry - 03-01-23
السلام عليكم ورحمة الله وبركاته
كود :
con.open
dim dt=con.getschema("tables",{nothing,nothing,nothing}) 'هذا السطر
for each r in dt.rows
msgbox(r("table_name"))
next
con.close
الكود أعلاه يجلب أسماء الجداول لقاعدة بيانات و يضعها فى datatable و يعرضها
ولكن هناك مشكلة
لأن هذا الكود لاحظت أنه يسبب توقف البرنامج فى بعض الأحيان ولا أعرف السبب
فأرجو الإفادة بطريقة أخرى لعرض أسماء الجداول
وشكرا
RE: جلب أسماء الجداول لقاعدة بيانات - aljzazy - 03-01-23
هذا الامر يقوم باستدعاء قواعد البانات الموجودة بالسيرفر ويضعها في كومبوبوكس
بامكانك الاستفادة من الكود حسب ما تريد
كود :
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
RE: جلب أسماء الجداول لقاعدة بيانات - mmaalmesry - 04-01-23
جزاكم الله خيرا
و هل هذا الكود يصلح لقاعدة بيانات oledb أو access ؟ بعد إجراء بعض التعديلات طبعا ؟
RE: جلب أسماء الجداول لقاعدة بيانات - aljzazy - 04-01-23
(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()
|