日期:2014-05-18  浏览次数:20841 次

急急急,判断是否已经安装了数据库?
如何判断机子是否已经安装了数据库?sql2005为例...

------解决方案--------------------
判断 进程或服务都不一定吧,也有可能没运行哦,我就是要用才启动服务。

判断注册表应该好些
------解决方案--------------------
C# code

//添加windows服务所需引用空间System.Service.Process.dll
using System.ServiceProcess;

public static bool ExistSqlServerService()
  {
   bool ExistFlag=false;
   ServiceController[]   service=ServiceController.GetServices();   
   for(int   i=0;i<service.Length;i++)   
   {   
    if   (service[i].DisplayName.ToString()=="MSSQLSERVER")   
    {  
     ExistFlag=true;   
    }   
   }   
   return ExistFlag;
  }

------解决方案--------------------
1.有没有安装判读注册表(SQL2008特征键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL:MSSQLSERVER=?),
2.有没有运行判断进程(SQL2008进程名称:sqlserver.exe)
------解决方案--------------------
连接SQLserver系统数据库,如果成功则安装了,如果没有,看是不是数据库服务没有启动,我机器默认下数据库是不启动的,常识启动,再次连接,如果还是不成功,可以认为没有安装。
------解决方案--------------------
C# code
System.Data.Sql.SqlDataSourceEnumerator instance=System.Data.Sql.SqlDataSourceEnumerator.Instance;
DataTable dt=instance.GetDataSources();

------解决方案--------------------
能检测到所有已经安装的SQL实例?包括没启动的么?
-------------------------------------
已启动的基本上能检测到,没启动的很难说。
------解决方案--------------------
随便打开一个数据库链接字符串,没安装与密码出错不一样的
------解决方案--------------------
还有一种方法,就是查看Windows服务中是否有SQL Server的服务。

C#可以返回Windows的所有服务成一个数组,遍历检查即可。