Détecter des instances locales de SQL server

Le
The Best Poster
Bonjour,

Je développe une application en C# qui doit être capable de détecter
les instances de SQL server sur le réseau pour pouvoir me connecter à
une base de données.

Le code ci-dessous fonctionne, mais il ne détecte que les bases
visibles via le réseau. Je voudrais aussi détecter les bases qui
peuvent être installées en local sur le poste qui fait la détection.
Que dois je modifier ou ajouter dans mon code ?

Merci de votre aide.

cmbListOfMachines est une combobox


// Retrieve list of instances of sql server on network and display
them in combobox
Cursor = System.Windows.Forms.Cursors.WaitCursor;
SqlDataSourceEnumerator sqlenum =
SqlDataSourceEnumerator.Instance;
DataTable dtsql = sqlenum.GetDataSources();
cmbListOfMachines.Items.Clear();
foreach (DataRow row in dtsql.Rows)
{
if (row["InstanceName"].ToString() != "") // Display
only if an instance is found
{
//cmbListOfMachines.Items.Add(row["ServerName"] +
"\ " + row["InstanceName"] + " (" + row["Version"] + ")");
cmbListOfMachines.Items.Add(row["ServerName"] + "\
" + row["InstanceName"]);

}
}
Cursor = System.Windows.Forms.Cursors.Default;
}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
vanderghast
Le #21246721
C'est en anglais et en VbNet, mais je pense qu'il n'y a pas de problème
majeur à traduire:

http://www.devx.com/vb2themax/Tip/18458


Vanderghast, Access MVP



"The Best Poster" news:hlgbtr$745$
Bonjour,

Je développe une application en C# qui doit être capable de détecter les
instances de SQL server sur le réseau pour pouvoir me connecter à une base
de données.

Le code ci-dessous fonctionne, mais il ne détecte que les bases visibles
via le réseau. Je voudrais aussi détecter les bases qui peuvent être
installées en local sur le poste qui fait la détection. Que dois je
modifier ou ajouter dans mon code ?

Merci de votre aide.

cmbListOfMachines est une combobox


// Retrieve list of instances of sql server on network and display them in
combobox
Cursor = System.Windows.Forms.Cursors.WaitCursor;
SqlDataSourceEnumerator sqlenum =
SqlDataSourceEnumerator.Instance;
DataTable dtsql = sqlenum.GetDataSources();
cmbListOfMachines.Items.Clear();
foreach (DataRow row in dtsql.Rows)
{
if (row["InstanceName"].ToString() != "") // Display only
if an instance is found
{
//cmbListOfMachines.Items.Add(row["ServerName"] + "\ "
+ row["InstanceName"] + " (" + row["Version"] + ")");
cmbListOfMachines.Items.Add(row["ServerName"] + "\ " +
row["InstanceName"]);

}
}
Cursor = System.Windows.Forms.Cursors.Default;
}




vanderghast
Le #21246711
Désolé, mauvaise référence, toujours en anglais, mais cette fois, bel et
bien en VbNet, mais aussi en C#:

http://sqldbatips.com/showarticle.asp?IDE


Vanderghast, Access MVP


"The Best Poster" news:hlgbtr$745$
Bonjour,

Je développe une application en C# qui doit être capable de détecter les
instances de SQL server sur le réseau pour pouvoir me connecter à une base
de données.

Le code ci-dessous fonctionne, mais il ne détecte que les bases visibles
via le réseau. Je voudrais aussi détecter les bases qui peuvent être
installées en local sur le poste qui fait la détection. Que dois je
modifier ou ajouter dans mon code ?

Merci de votre aide.

cmbListOfMachines est une combobox


// Retrieve list of instances of sql server on network and display them in
combobox
Cursor = System.Windows.Forms.Cursors.WaitCursor;
SqlDataSourceEnumerator sqlenum =
SqlDataSourceEnumerator.Instance;
DataTable dtsql = sqlenum.GetDataSources();
cmbListOfMachines.Items.Clear();
foreach (DataRow row in dtsql.Rows)
{
if (row["InstanceName"].ToString() != "") // Display only
if an instance is found
{
//cmbListOfMachines.Items.Add(row["ServerName"] + "\ "
+ row["InstanceName"] + " (" + row["Version"] + ")");
cmbListOfMachines.Items.Add(row["ServerName"] + "\ " +
row["InstanceName"]);

}
}
Cursor = System.Windows.Forms.Cursors.Default;
}




The Best Poster
Le #21246811
vanderghast a formulé ce lundi :
Désolé, mauvaise référence, toujours en anglais, mais cette fois, bel et bien
en VbNet, mais aussi en C#:

http://sqldbatips.com/showarticle.asp?IDE


Vanderghast, Access MVP





Merci de votre réponse. Entre temps, j'avais trouvé celà, qui marche
parfaitement :

On peut trouver le nom des instances dans la base de registre :
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft Sql ServerInstances
NamesSQL ...

En plaçant localhost devant, on arrive à se connecter à l'instance
locale de son SQL Server.
Publicité
Poster une réponse
Anonyme