没有服务器名称的连接字符串

Posted

技术标签:

【中文标题】没有服务器名称的连接字符串【英文标题】:connection string without server name 【发布时间】:2016-05-23 14:34:25 【问题描述】:

我正在使用应该在本地网络中运行的 sql server express 数据库开发一个 c# 应用程序。我想通过 InstallAware 为我的项目进行设置。

我想知道如何在不知道服务器名称的情况下为客户端设置连接字符串,另一方面我想连接到只知道 InstanceName 的数据库。

ConnectionString = @"Data Source=ServerName\InstanceName;Initial Catalog=Accounting;Persist Security Info=True;User ID=sa;Password=password";

【问题讨论】:

【参考方案1】:
public static string GetServerName()
    
        // https://msdn.microsoft.com/en-us/library/a6t1z9x2%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

        DataTable dt = SqlDataSourceEnumerator.Instance.GetDataSources();
        DataRow[] dr = dt.Select("InstanceName='myInstanceName'");

        if (dr.Length == 0)
            return null;

        return dr[0]["ServerName"].ToString();
    

【讨论】:

以上是关于没有服务器名称的连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

在连接字符串中包含服务名称的语法是啥?

cx_Oracle 在连接字符串上使用 SID 而不是服务名称时不连接

如何使用 SqlConnectionStringBuilder 从连接字符串中获取数据库名称

在 C# 中更改 Excel Power Query 连接字符串

R SQL Server ODBC连接在服务器名称中转义字符

在 Access 中连接标题和名称字符串