2008-09-29 2 views

답변

5

내가 명령 줄 사용되었다 할 알고있는 유일한 방법 :

osql -L 

을하지만 콤보 작성하여 특정 목표를 해결하는 것 같습니다 아래의 글 발견

http://www.sqldbatips.com/showarticle.asp?ID=45

+1

문서가 더 이상 작동하지 않는 것 같습니다. – mrc

0

C#에서 odbc32.dll에 대한 호출을 사용했습니다.

예 :

해당 기능
[DllImport("odbc32.dll", CharSet = CharSet.Ansi)] 

private static extern short SQLBrowseConnect(
IntPtr hconn, StringBuilder inString, 
short inStringLength, StringBuilder outString, short outStringLength, out short 
outLengthNeeded); 

문서는 벤의 문서는 네트워크에있는 모든 SQL 서버를 발견,이 같은 작업을 수행 할 수 있습니다 사용하는 것입니다 SQL SMO에 연결되고 싶지 않은 경우 MSDN

5

에 :

Private Sub cmbServer_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbServer.DropDown 
    Dim oTable As Data.DataTable 
    Dim lstServers As List(Of String) 
    Try 
     If cmbServer.Items.Count = 0 Then 
      System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor 
      oTable = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources 

      For Each oRow As DataRow In oTable.Rows 
       If oRow("InstanceName").ToString = "" Then 
        cmbServer.Items.Add(oRow("ServerName")) 
       Else 
        cmbServer.Items.Add(oRow("ServerName").ToString & "\" & oRow("InstanceName").ToString) 
       End If 
      Next oRow 
     End If 
    Catch ex As Exception 
     ErrHandler("frmLogin", "cmbServer_DropDown", ex.Source, ex.Message, Ex.InnerException) 
    Finally 
     System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default 

     If oTable IsNot Nothing Then 
      oTable.Dispose() 
     End If 
    End Try 
End Sub 

SqlDataSourceEnumerator 클래스는 SQL Server를 2.0 프레임 워크에서 바로 찾을 수 있기 때문에 유용합니다.