首页 新闻 会员 周边 捐助

C# 怎样通过代码查询本地都安装了哪些数据库

0
悬赏园豆:20 [已解决问题] 解决于 2018-07-25 18:51

C#  怎样通过代码查询本地都安装了哪些数据库? 

百度不到啊  求大神指点

柚子家的橘子哟的主页 柚子家的橘子哟 | 初学一级 | 园豆:4
提问于:2018-07-05 14:53
< >
分享
最佳答案
0

神奇的需求...

分析一下需求想要知道本地安装的数据库。我们要先知道有哪些数据库引擎

像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解决所有问题,如果不知道...你去转行当黑客吧?

收获园豆:15
写代码的相声演员 | 小虾三级 |园豆:517 | 2018-07-05 20:04

谢谢你 大神  我开始就是用暴力扫描  不可行 ,然后又或取服务列表,但是有的数据库就获取不到。我也是头疼 

柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-06 09:44
其他回答(4)
0

你一个新手挑战这种难度的工作作甚?

1、本地装没装数据库,看看就知道了。

2、需要用代码知道的,通常是平台级的产品了,他们自然有时间无聊到用代码去做这个事情。

3、你问的是数据库引擎还是数据库引擎里面的数据库?

收获园豆:2
爱编程的大叔 | 园豆:30844 (高人七级) | 2018-07-05 15:05

老板给的任务 我也没办法啊  所以才来问 

支持(0) 反对(0) 柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-05 17:18

我两个都找  可不可以 。大叔帮我啊 ?

支持(0) 反对(0) 柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-05 17:31
0

不知道你的目的是为了啥。才有这样的需求。

收获园豆:1
温情亿度开发者 | 园豆:315 (菜鸟二级) | 2018-07-05 16:06

不管为了啥  。就是工作需要  

支持(0) 反对(0) 柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-05 17:19
0

sql server 的可以参考

其他数据库要去找资料了

收获园豆:1
远扬 | 园豆:30 (初学一级) | 2018-07-05 19:37

w 着了很多资料 解决不了才来麻烦你们的

支持(0) 反对(0) 柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-06 09:44
0

查注册表呗

收获园豆:1
jello chen | 园豆:7336 (大侠五级) | 2018-07-06 19:25

有的电脑安装的数据库是绿色版的,注册表就用不了了 

支持(0) 反对(0) 柚子家的橘子哟 | 园豆:4 (初学一级) | 2018-07-09 09:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册