Domanda

Come ottenere il nome del server tramite il codice se è installato SQL Server (Standard Edition).

Passiamo il nome del server durante la creazione di una stringa di connessione per connettere SQL Server. Possiamo recuperare questo valore tramite il codice?

string sqlConnectionString = string.Format(
"user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB;
connection timeout={3}",
dirDBinfo.UserName, dirDBinfo.Password, "ServerName", dirDBinfo.TimeOut);
È stato utile?

Soluzione

Non sono sicuro di aver capito cosa vuoi.

Se si dispone già di una stringa di connessione e si sta tentando di estrarre il nome del server da esso per utilizzarlo altrove, è possibile decodificarlo in questo modo:

var parser = new SqlConnectionStringBuilder(connectionString);
var serverName = parser.DataSource;

Se stai costruendo la tua stringa di connessione per la prima volta, allora:

  1. Se sai di voler connetterti a SQL Server sul computer su cui è in esecuzione il tuo codice client, utilizza semplicemente (local) per il nome del server. Se SQL Server ha un nome di istanza, specificalo in questo modo: (local) \ myinstancename .
  2. Se non sai in anticipo a quale server collegarti, spetta a te ottenere tali informazioni da qualche altra parte.

Altri suggerimenti

Non puoi semplicemente eseguire SELECT @@ SERVERNAME su questa connessione?

Il server è sul computer locale?
In tal caso, impostare il nome del server su localhost .
In caso contrario, utilizza SqlDataSourceEnumerator .


Inoltre, invece di creare una stringa di connessione utilizzando String.Format , è necessario utilizzare un SqlConnectionStringBuilder . Questo gestirà i valori con punti e virgola.

Ad esempio:

var builder = new SqlConnectionStringBuilder();

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top