Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter des instances locales de SQL server

3 réponses
Avatar
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;
}

3 réponses

Avatar
vanderghast
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" wrote in message
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;
}




Avatar
vanderghast
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" wrote in message
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;
}




Avatar
The Best Poster
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.