Cursor.Current = Cursors.WaitCursor; try { // see this method in the example above DbProviderFactory f = DbProviderFactories.GetFactory("System.Data.SqlClient"); // if our factory supports creating a DbConnection, return it. if (f.CanCreateDataSourceEnumerator) { DbDataSourceEnumerator enu = f.CreateDataSourceEnumerator(); DataTable t = enu.GetDataSources(); // uses chooses a Data Row r //DataRow r = t.Rows[0]; //string dataSource = (string)r["ServerName"]; //if (r[InstanceName] != null) // dataSource += ("\\" + r["InstanceName"]); //// this method is defined below //RewriteConnectionStringAndUpdateConfigFile(f, dataSource); this.dataGridView1.DataSource = t; } else Console.WriteLine("Source must be changed manually"); } finally { Cursor.Current = Cursors.Default; }