السلام عليكم وشكرا للرد
اخي الكريم
sql 2008r2
vb.net
في جهاز واحد فقط
البرنامج يحتوي 10 داتا بيز ويوجد اكثر من سيرفر بالسكول
وكل سيرفير يوجد به داتا بيز
اريد فورم اختيار اسم السيرفر من سكول
ثم اختيار داتا بيز والاتصال بها
وشكرا لك
وهذا مثال لطريقة استخدامه ضع عدد 2 كمبوبوكس ComboBox وعدد 2 بوتون Button
البوتون الأول لملأ الكومبو الأول بالسيرفرات المتوفرة (حياخذ شوية وقت للبحث) بعدها اختر واحد من السيرفرات التي وجدها ثم اضغط البوتون الثاني لملأ الكومبو الثاني بأسماء الداتابيز لذلك السيرفر
لا تنس أن تضيف رفرنس Reference باسم Microsoft.SqlServer.Smo للمشروع
كود :
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s() As SqlServer.ServerInstance
s = SqlServer.EnumerateServers()
ComboBox1.Items.Clear()
For i = 0 To s.Length - 1
ComboBox1.Items.Add(s(i).Name)
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Using con As New SqlClient.SqlConnection("Data Source=" & ComboBox1.Text & ";Integrated Security=True")
con.Open()
Using cmd As New SqlClient.SqlCommand("sp_databases", con)
cmd.CommandType = CommandType.StoredProcedure
Dim read As SqlClient.SqlDataReader = cmd.ExecuteReader()
While read.Read()
ComboBox2.Items.Add(DirectCast(read("DATABASE_NAME"), String))
End While
End Using
End Using
End Sub
End Class
وهذا الكلاس
كود :
Imports Microsoft.SqlServer.Management
Imports Microsoft.SqlServer.Management.Smo
Public Class SqlServer
''' <summary>
''' The form of EnumerateServers for all machines in the network.
''' </summary>
Public Overloads Shared Function EnumerateServers() As ServerInstance()
Return EnumerateServers("")
End Function
''' <summary>
''' Return a collection of server instance descriptors for all SQL Servers within a network
''' </summary>
''' <param name="computerName">Specify a computer name to target a particular machine</param>
''' <returns>An array of ServerInstance descriptor objects</returns>
''' <remarks>This method translates the DataTable to a list of objects with Intellisense.</remarks>
Public Overloads Shared Function EnumerateServers(ByVal computerName As String) As ServerInstance()
Dim tableServers As DataTable = Nothing
If computerName.Length = 0 Then
tableServers = SmoApplication.EnumAvailableSqlServers
Else
tableServers = SmoApplication.EnumAvailableSqlServers(computerName)
End If
' Create enough space for all the SQL Server instances.
Dim list(tableServers.Rows.Count - 1) As ServerInstance
' Build the list of servers.
For index As Integer = 0 To tableServers.Rows.Count - 1
Dim row As DataRow = tableServers.Rows(index)
Dim name As String = row("Name").ToString()
Dim server As String = row("Server").ToString()
Dim instance As String = row("Instance").ToString()
Dim clustered As Boolean = row("IsClustered").ToString()
Dim local As Boolean = row("IsLocal").ToString()
Dim entry As New ServerInstance(name, server, instance, clustered, local)
list(index) = entry
Next index
Return list
End Function
Public Class ServerInstance
Public Sub New(ByVal name As String, ByVal server As String, ByVal instance As String, ByVal clustered As Boolean, ByVal local As Boolean)
m_name = name
m_server = server
m_instance = instance
m_clustered = clustered
m_local = local
End Sub
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_server As String = ""
Public Property Server() As String
Get
Return m_server
End Get
Set(ByVal value As String)
m_server = value
End Set
End Property
Private m_instance As String = ""
Public Property Instance() As String
Get
Return m_instance
End Get
Set(ByVal value As String)
m_instance = value
End Set
End Property
Private m_clustered As Boolean
Public Property IsClustered() As Boolean
Get
Return m_clustered
End Get
Set(ByVal value As Boolean)
m_clustered = value
End Set
End Property
Private m_local As Boolean
Public Property IsLocal() As Boolean
Get
Return m_local
End Get
Set(ByVal value As Boolean)
m_local = value
End Set
End Property
End Class