Get list of database depends on chosen server

后端 未结 2 1887
不知归路
不知归路 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<String> ServerNames = new List<String>();
    
     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<String> databases = new List<String>();
    
    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);
    
    
    }     
    
    0 讨论(0)
  • 2021-02-03 15:25
        using (var connection = new System.Data.SqlClient.SqlConnection("ConnectionString"))
        {
            connection.Open();
            var command = new System.Data.SqlClient.SqlCommand();
            command.Connection = connection;
            command.CommandType = CommandType.Text;
            command.CommandText = "SELECT name FROM master.sys.databases";
    
            var adapter = new System.Data.SqlClient.SqlDataAdapter(command);
            var dataset = new DataSet();
            adapter.Fill(dataset);
            DataTable dtDatabases = dataset.Tables[0];
        }
    
    0 讨论(0)
提交回复
热议问题