在计算机本地或网络中使用sqlserver名称获取服务器名

本文关键字:sqlserver 服务器 获取 计算机 网络 | 更新日期: 2023-09-27 18:11:37

DataTable table = SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow server in table.Rows)
{
    cmbshowallsqlserver.Items.Add(server[table.Columns["ServerName"]].ToString());
}

这段代码只给了我计算机的名称。我想给我的计算机名与sqlserver名称。例如,这段代码给我andfd -pc但我需要例如andfd -pc'sqlexpress或andfd -pc'zarnegar

在计算机本地或网络中使用sqlserver名称获取服务器名

GetDataSources()获得的表中的ServerName列恰好具有服务器名称。您也可以从InstanceName列中获取实例名称。有关其他可用选项,请参阅MSDN。

所以你的代码会变成这样:
cmbshowallsqlserver.Items.Add(
    string.Format(@"{0}'{1}",
                  server[table.Columns["ServerName"]],
                  server[table.Columns["InstanceName"]])
);
DataTable table = SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow server in table.Rows)
{
    string servername = server[table.Columns["ServerName"]].ToString();
    // you can get that using the instanceName property 
    string instancename = server[table.Columns["InstanceName"].ToString();
    //and version property tells you the version of sql server i.e 2000, 2005, 2008 r2 etc
    string sqlversion = server[table.Columns["Version"].ToString();
    //to form the servername you can combine the server and instancenames as
    string sqlserverfullname = String.Format("{0}'{1}",servername, instancename);
    cmbshowallsqlserver.Items.Add(sqlserverfullname);
}