我需要查找是否在计算机上安装了SQL Server.它可以是任何版本的SQL服务器(7,2005,8,sql express等).我们在编写安装程序时需要知道此信息,并且需要向用户显示如果未找到SQL服务器,则无法继续安装.
我见过使用注册表,wmi,SMO或只是连接到SQL服务器实例的版本(虽然在这里没有帮助,因为我们不知道服务器名称).
我们正在使用Wix安装程序.
这样做的正确方法是什么?
JD
列出网络上所有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("****************************************"); }
摘自此博客文章.