我需要查找是否在计算机上安装了SQL Server.它可以是任何版本的SQL服务器(7,2005,8,sql express等).我们在编写安装程序时需要知道此信息,并且需要向用户显示如果未找到SQL服务器,则无法继续安装.
我见过使用注册表,wmi,SMO或只是连接到SQL服务器实例的版本(虽然在这里没有帮助,因为我们不知道服务器名称).
我们正在使用Wix安装程序.
这样做的正确方法是什么?
JD
M4N*_*M4N 16
列出网络上所有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("****************************************");
}
Run Code Online (Sandbox Code Playgroud)
摘自此博客文章.
另一个简单的替代方法是在安装程序中使用以下命令行:
sc queryex type= service | find "MSSQL"
Run Code Online (Sandbox Code Playgroud)
上面的命令只是列出了包含 MSSQL 部分的所有服务,列出了命名的和默认的 SQL Server 实例。如果未找到任何内容,此命令将不返回任何内容。它返回如下内容:
SERVICE_NAME: MSSQL$SQLEXPRESS
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
33059 次 |
| 最近记录: |