C# 如果安装了SQL server(标准版),如何通过代码获取服务器名称
如果安装了SQL server(标准版),如何通过代码获取服务器名称 我们在创建连接SQL server的连接字符串时传递服务器名称。我们可以通过代码检索这个值吗C# 如果安装了SQL server(标准版),如何通过代码获取服务器名称,c#,.net,sql-server,ado.net,connection-string,C#,.net,Sql Server,Ado.net,Connection String,如果安装了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, dir
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具有实例名称,请按如下方式指定:(本地)\myinstancename
服务器在本地计算机上吗?
如果是,请将服务器名称设置为
localhost
如果没有
此外,不应使用
string.Format
构建连接字符串,而应使用。这将使用分号处理值
例如:
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;
您不能对此连接执行SELECT@@SERVERNAME吗?所以我们仍在构建连接字符串?在这种情况下,决定选择哪个SQL server的逻辑是什么?如果它是本地的,那么正如您所说的,只需使用localhost。但我认为我们已经传递了服务器名,现在我们需要在代码中以某种方式检索它…我理解这个问题,这就是他所问的。我同意-听起来Ashish试图让应用程序猜测要使用哪台服务器,但它根本无法做到。除了通过
(local)
选择默认本地实例之外,唯一明智的选择是告诉代码要使用哪个服务器。如何做到这一点取决于你自己。