Get list of database depends on chosen server

后端 未结 2 1927
不知归路
不知归路 2021-02-03 15:14

I\'m using C# with framework 4.0 and SQL server 2008 R2. I have listed the SQL server 2008 with this code:

 public static string[] GetSQLServerList()
        {
          


        
2条回答
  •  天命终不由人
    2021-02-03 15:24

    This is how you get a list of server names on the network:

    List ServerNames = new List();
    
     SqlDataSourceEnumerator servers = SqlDataSourceEnumerator.Instance;
     DataTable serversTable = servers.GetDataSources();
    
         foreach (DataRow row in serversTable.Rows) {
                string serverName = row[0].ToString();
    
                 try {
    
                    if (row[1].ToString() != "") {
    
                                serverName += "\\" + row[1].ToString();
    
                    }
    
    
                  }
                  catch {
    
    
                  }
    
                  ServerNames.Add(serverName);
          }
    

    To Get a List of databases from selected server:

    List databases = new List();
    
    SqlConnectionStringBuilder connection = new SqlConnectionStringBuilder();
    
     connection.DataSource = SelectedServer;
     // enter credentials if you want
     //connection.UserID = //get username;
    // connection.Password = //get password;
     connection.IntegratedSecurity = true;
    
     String strConn = connection.ToString();
    
     //create connection
      SqlConnection sqlConn = new SqlConnection(strConn);
    
    //open connection
    sqlConn.Open();
    
     //get databases
    DataTable tblDatabases = sqlConn.GetSchema("Databases");
    
    //close connection
    sqlConn.Close();
    
    //add to list
    foreach (DataRow row in tblDatabases.Rows) {
          String strDatabaseName = row["database_name"].ToString();
    
           databases.Add(strDatabaseName);
    
    
    }     
    

提交回复
热议问题