C# 怎样通过代码查询本地都安装了哪些数据库?
百度不到啊 求大神指点
神奇的需求...
分析一下需求想要知道本地安装的数据库。我们要先知道有哪些数据库引擎
像Sql Server,Oracle,Mysql这种数据库,一般会注册为windows系统的服务或linux系统的守护进程。
这种比较简单
Windows下获取服务列表
需要手动引用System.ServiceProcess包
ServiceController[] services = ServiceController.GetServices(); foreach (ServiceController sController in services) { Console.WriteLine(sController.ServiceName + " " + sController.Status); }
Linux下...我懒得百度了,自己百一下,没有对应的类库就用Core直接执行系统命令
嘛,至于装了什么数据库,字符串匹配还不会?
好下一个,如果有的数据库没有注册为服务或守护进程,例如Mysql就可以,那么我们可从当前所有的进程中下手。
找出进程列表(不会去百度,连百度都不会建议你换个工作),然后处理方法跟上面一样,字符串匹配。
最蛋疼的数据库没有注册为服务或守护进程,而且还没有启动,我擦统计这个干啥?...好吧,这个真的就无能为力了,躲在草丛里准备偷袭你的敌人除非你知道他在哪,否则永远不知道草丛里有谁。除非很暴力的全盘扫描,然后去分析文件结构,这个就太蛋疼了。
至于引擎里有啥数据库...
嗯...如果你知道用户名密码的话,ADO解决所有问题,如果不知道...你去转行当黑客吧?
谢谢你 大神 我开始就是用暴力扫描 不可行 ,然后又或取服务列表,但是有的数据库就获取不到。我也是头疼
你一个新手挑战这种难度的工作作甚?
1、本地装没装数据库,看看就知道了。
2、需要用代码知道的,通常是平台级的产品了,他们自然有时间无聊到用代码去做这个事情。
3、你问的是数据库引擎还是数据库引擎里面的数据库?
老板给的任务 我也没办法啊 所以才来问
我两个都找 可不可以 。大叔帮我啊 ?
不知道你的目的是为了啥。才有这样的需求。
不管为了啥 。就是工作需要
查注册表呗
有的电脑安装的数据库是绿色版的,注册表就用不了了