如果安装了SQL Server(标准版),如何通过代码获取服务器名称。

我们在创建连接字符串时传递服务器名称以连接SQL Server。我们可以通过代码检索这个值吗?

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);
有帮助吗?

解决方案

我不确定我明白你想要什么。

如果您已经有一个连接字符串,并且您试图从中提取服务器名称以供其他地方使用,您可以像这样对其进行反向工程:

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

如果您是第一次构建连接字符串,则:

  1. 如果您知道要在运行客户端代码的计算机上连接到SQL Server,则只需使用(local)作为服务器名称。如果SQL Server具有实例名称,则将其指定为:(local)\ myinstancename
  2. 如果您事先不知道要连接的服务器,那么您可以从其他地方获取该信息。

其他提示

你不能只针对这个连接执行SELECT @@ SERVERNAME吗?

服务器是否在本地计算机上?
如果是这样,请将服务器名称设置为 localhost
如果没有,请使用SqlDataSourceEnumerator


此外,不应使用 String.Format 构建连接字符串,而应使用 SqlConnectionStringBuilder 。这将使用分号处理值。

例如:

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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top