Kevin Brady Ответов: 2

Поиск всех серверов данных MSSQL с помощью sqldatasourceenumerator


Я пытаюсь найти все серверы данных MSSQL в своей сети.

Ниже приведен код:

Option Strict Off
Option Explicit On
Imports System.Data.Common
Imports System.Data.Sql

Public Class Form1

#Region "Class Header"
    Inherits Form

#End Region

#Region "Start-up"

    Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Show()
    End Sub

#End Region

#Region "Commands"

    Dim mDT As DataTable ' the data table that will be retrieved from GetDataSources call
    Dim mSqlEnum As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance ' the MSSQL enumerator instance

    Private Sub btnGetDBList_Click(sender As Object, e As EventArgs) Handles btnGetDBList.Click
        mDT = mSqlEnum.GetDataSources
        Dim tstr As String = "Number of MSSQL Servers found = " & mDT.Rows.Count
        MsgBox(tstr)
    End Sub
#End Region

End Class


В результате чего
btnGetDBList_Click
метод сообщает об отсутствии найденных серверов данных. Он даже не находит сервер данных, работающий на моей машине.

Что я уже пробовал:

Рассмотрены многочисленные примеры, найденные в интернете. Приведенный выше код кажется правильным.

2 Ответов

Рейтинг:
2

OriginalGriff

Это прекрасно работает для меня:

Dim sdse As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
Dim dt As DataTable = sdse.GetDataSources()

For Each row As DataRow In dt.Rows

    For Each col As DataColumn In dt.Columns
        Console.Write(row(col))
        Console.Write(", ")
    Next

    Console.WriteLine()
Next

Console.WriteLine(dt.Rows.Count)
Находит мой локальный экземпляр SQL Server без каких-либо проблем:
GRDESK, SQLEXPRESS, No, 11.0.5058.0, 
1


Рейтинг:
0