2012-10-22 61 views
2

我得到使用DB名稱:使用SMO檢索SQL服務器,數據庫,表信息

SqlDataSourceEnumerator sdse = SqlDataSourceEnumerator.Instance; 
DataTable table = sdse.GetDataSources(); 

下面我得到分貝的列表然後使用。

static void Main(string[] args) 
     { 
      { 
       //Connect to the local, default instance of SQL Server. 
       Server srv; 
       srv = new Server("LAPTOP\\SQLEXPRESS"); 
       //The connection is established when a property is requested. 

       Console.WriteLine(srv.Databases.ToString()); 
       foreach (Database db in srv.Databases) 
       { 
        Console.WriteLine(db); 
       } 
       Console.ReadLine(); 
      } 
     } 

的問題是,我只得到了系統數據庫,沒有其他人,即使他們存在。我不知道要更改什麼來獲取所有數據庫的信息。任何援助將不勝感激。

TH

回答

3

雖然較晚,但我剛收到你們的問題的答覆按您的要求。你爲什麼不嘗試這段代碼片段:

Server srvMgmtServer = default(Server); 
srvMgmtServer = new Server("LAPTOP\\SQLEXPRESS"); 
ServerConnection srvConn = default(ServerConnection); 
srvConn = srvMgmtServer.ConnectionContext; 
srvConn.LoginSecure = true; 

foreach(Database db in srvMgmtServer.Databases; 
{ 
    Console.WriteLine(db.Name); 
} 
+0

如何連接遠程連接sql服務器? – Harshal

+1

相同的方法只能在服務器構造函數中使用遠程服務器名稱。例如「remoteServerName \ sqlServerInstance」 –