c# inicio - Cómo obtener el nombre del servidor a través del código si SQL Server (Standard Edition) está instalado




2 Answers

No estoy seguro de entender lo que quieres.

Si ya tiene una cadena de conexión y está tratando de extraer el nombre del servidor para su uso en otro lugar, puede realizar una ingeniería inversa de esta manera:

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

Si está construyendo su cadena de conexión por primera vez, entonces:

  1. Si sabe que desea conectarse al Servidor SQL en la máquina en la que se está ejecutando su código de cliente, simplemente use (local) el nombre del servidor. Si el SQL Server tiene un nombre de instancia, especifíquelo así: (local)\myinstancename .
  2. Si no sabe de antemano a qué servidor conectarse, entonces depende de usted obtener esa información de otro lado.
tengo mi

Cómo obtener el nombre del servidor a través del código si SQL Server (Standard Edition) está instalado.

Pasamos el nombre del servidor al crear una cadena de conexión para conectar SQL Server. ¿Podemos recuperar este valor a través del código?

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);



¿Está el servidor en la computadora local?
Si es así, configure el nombre del servidor como localhost .
Si no, use SqlDataSourceEnumerator .

Además, en lugar de crear una cadena de conexión utilizando String.Format , debe usar un SqlConnectionStringBuilder . Esto manejará los valores con punto y coma.

Por ejemplo:

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;



Related

c# .net sql-server ado.net connection-string