如果安装了SQL Server(标准版),如何通过代码获取服务器名称
-
06-07-2019 - |
题
如果安装了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;
如果您是第一次构建连接字符串,则:
- 如果您知道要在运行客户端代码的计算机上连接到SQL Server,则只需使用
(local)
作为服务器名称。如果SQL Server具有实例名称,则将其指定为:(local)\ myinstancename
。 - 如果您事先不知道要连接的服务器,那么您可以从其他地方获取该信息。 醇>
其他提示
你不能只针对这个连接执行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;
不隶属于 StackOverflow