c# - 检查是否安装了 SQL 服务器(任何版本)?

标签 c# sql-server

我需要查找机器上是否安装了 SQL Server。它可以是任何版本的 SQL 服务器(7、2005、8、sql express 等)。我们在编写安装程序时需要知道此信息,并且需要向用户表明如果未找到 SQL 服务器,则无法继续安装。

我见过使用注册表、wmi、SMO 或只是连接到 SQL 服务器实例的版本(尽管在这里没有帮助,因为我们不知道服务器名称)。

我们正在使用 Wix 安装程序。

正确的做法是什么?

京东

最佳答案

列出网络上所有 SQL Server 的简单方法是:

using System.Data;
using System.Data.Sql;
using System;

...

SqlDataSourceEnumerator sqldatasourceenumerator1 = SqlDataSourceEnumerator.Instance;
DataTable datatable1 = sqldatasourceenumerator1.GetDataSources();
foreach (DataRow row in datatable1.Rows)
{
    Console.WriteLine("****************************************");
    Console.WriteLine("Server Name:"+row["ServerName"]);
    Console.WriteLine("Instance Name:"+row["InstanceName"]);
    Console.WriteLine("Is Clustered:"+row["IsClustered"]);
    Console.WriteLine("Version:"+row["Version"]);
    Console.WriteLine("****************************************");
}

取自this blog post .

关于c# - 检查是否安装了 SQL 服务器(任何版本)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381055/

相关文章:

sql-server - 在 SQL Server 和 Postgresql 中将字符串转换为 datetimeoffset

c# - 检查表是否存在 : Table doesn't exist while it exists

mysql - 将特定列中具有相同值的行折叠到一个中

c# - Rhino-Etl 和 MySQL 的问题

c# - 为什么 visual studio 不添加链式引用?

c# - 如何检查位值是否等于 1?

sql-server - 在 linux VM 上托管的 sql server 上恢复备份

sql-server - SQL Server "AFTER INSERT"触发器看不到刚刚插入的行

c# - ASP.NET Core - 自定义 AspNetCore.Identity 实现不起作用

c# - 文本框asp.net中用户输入的自动日期格式