Comment get le nom du server via le code si SQL Server (Standard Edition) est installé

Comment get le nom du server via le code si SQL Server (Standard Edition) est installé.

Nous transmettons le nom du server lors de la création d'une string de connection pour connecter SQL Server. Pouvons-nous récupérer cette valeur à l'aide du code?

ssortingng sqlConnectionSsortingng = ssortingng.Format( "user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB; connection timeout={3}", dirDBinfo.UserName, dirDBinfo.Password, "ServerName", dirDBinfo.TimeOut); 

Je ne suis pas sûr de comprendre ce que vous voulez.

Si vous avez déjà une string de connection et que vous essayez d'extraire le nom du server pour l'utiliser ailleurs, vous pouvez le désosser comme suit:

 var parser = new SqlConnectionSsortingngBuilder(connectionSsortingng); var serverName = parser.DataSource; 

Si vous construisez votre string de connection pour la première fois, alors:

  1. Si vous savez que vous voulez vous connecter au server SQL sur la machine sur laquelle votre code client s'exécute, alors utilisez simplement (local) pour le nom du server. Si le server SQL a un nom d'instance, spécifiez-le comme ceci: (local)\myinstancename .
  2. Si vous ne savez pas à l'avance à quel server se connecter, alors c'est à vous d'get cette information ailleurs.

Vous ne pouvez pas simplement exécuter SELECT @@ SERVERNAME contre cette connection?

Le server est-il sur l'ordinateur local?
Si c'est le cas, définissez le nom du server sur localhost .
Sinon, utilisez SqlDataSourceEnumerator .


En outre, au lieu de créer une string de connection à l'aide de Ssortingng.Format , vous devez utiliser un SqlConnectionSsortingngBuilder . Cela gérera les valeurs avec des points-virgules.

Par exemple:

 var builder = new SqlConnectionSsortingngBuilder(); builder.UserID = dirDBinfo.UserName; builder.Password = dirDBinfo.Password; builder.Server= "localhost"; builder.UserID = dirDBinfo.UserName; builder["Trusted_Connection"] = "no"; builder.Database = "TestDB" builder.ConnectTimeout = dirDBinfo.TimeOut;