日期:2014-05-18 浏览次数:20857 次
//添加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系统数据库,如果成功则安装了,如果没有,看是不是数据库服务没有启动,我机器默认下数据库是不启动的,常识启动,再次连接,如果还是不成功,可以认为没有安装。
------解决方案--------------------
System.Data.Sql.SqlDataSourceEnumerator instance=System.Data.Sql.SqlDataSourceEnumerator.Instance; DataTable dt=instance.GetDataSources();
------解决方案--------------------
能检测到所有已经安装的SQL实例?包括没启动的么?
-------------------------------------
已启动的基本上能检测到,没启动的很难说。
------解决方案--------------------
随便打开一个数据库链接字符串,没安装与密码出错不一样的
------解决方案--------------------
还有一种方法,就是查看Windows服务中是否有SQL Server的服务。
C#可以返回Windows的所有服务成一个数组,遍历检查即可。