SIGN UP MEMBER LOGIN:    
Blog

Generate SQL Server Instances without SMO

Posted by Superna Parajuli Blogs | ADO.NET in VB.NET Apr 18, 2008
This blog tells you how generates the list of SQL Server in your network without using SMO.

Private Function getAllServers() As DataTable 

    Dim dt As New DataTable

    '' dt = SmoApplication.EnumAvailableSqlServers 

    Dim info As ProcessStartInfo = New ProcessStartInfo("cmd", "/c sqlcmd -L") 

    info.RedirectStandardOutput = True 

    info.UseShellExecute = False 

    info.CreateNoWindow = True 

    Dim p As Process = New Process() 

    p.StartInfo = info 

    p.Start() 


   
Dim res As String = p.StandardOutput.ReadToEnd
 


   
Dim sqlSrvList() As String = res.Trim.Split(CChar(vbNewLine))
 


   
Dim sqlSrvrs As New List(Of String)
 

    For i As Int32 = 1 To sqlSrvList.Length - 1 

        sqlSrvrs.Add(sqlSrvList(i).Replace(Chr(13), "").Trim) 

    Next 

    Dim ServerName As String = "" 


   
Dim DatabaseName As String = ""
 


   
Dim Instance As String = ""
 


   
Dim drow As DataRow
 


   
Dim dcol As New DataColumn
 

    dcol = New DataColumn 

    dcol.Caption = "Name" 

    dcol.ColumnName = "Name" 

    dt.Columns.Add(dcol) 

    dcol = New DataColumn 

    dcol.Caption = "Server" 

    dcol.ColumnName = "Server" 

    dt.Columns.Add(dcol) 

    dcol = New DataColumn 

    dcol.Caption = "Instance" 

    dcol.ColumnName = "Instance" 

    dt.Columns.Add(dcol)
 

    For Each sqlserver As String In sqlSrvrs 

        ServerName = sqlserver
 

        If sqlserver.IndexOf("\") < 1 Then 

            DatabaseName = sqlserver 

        Else 

            DatabaseName = sqlserver.Substring(0, sqlserver.IndexOf("\")) 

        End If 

        Instance = sqlserver.Substring(sqlserver.IndexOf("\") + 1) 

        drow = dt.NewRow 

        drow("Name") = ServerName.ToUpper 

        drow("Server") = DatabaseName.ToUpper 

        drow("Instance") = Instance.ToUpper 

        dt.Rows.Add(drow) 

    Next 

    Return dt 

End Function

share this blog :
post comment