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()
{
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);
}
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];
}