C# 连接数据库时 系统找不到指定的文件。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 连接数据库时 系统找不到指定的文件。相关的知识,希望对你有一定的参考价值。

是目标框架的原因吗?

参考技术A 缺少dll .net core 版本 有点问题 引用的dll 不会自动输出到项目目录下去,需要手动拷过去,或者在项目里指定复制到项目目录 ,你看看你的mysql是不是引用了第三方的库 并且在输出目录下没有生成这个dll ,好像在vs2017 15.3以后就没有这个问题了
缺少dll .net core 版本 有点问题 引用的dll 不会自动输出到项目目录下去,需要手动拷过去,或者在项目里指定复制到项目目录 ,你看看你的mysql是不是引用了第三方的库 并且在输出目录下没有生成这个dll ,好像在vs2017 15.3以后就没有这个问题了
参考技术B 在你新建脚本的时候 左侧有.netCore控制台程序 也有 .framework控制台程序
如果要连接数据库 就用.framework 因为他的version版本和MySQL的版本匹配
如果用.netCore 目标框架的版本只到2.1 .frameWork目标框架版本到了4.7 MySQL要求4.0以上
参考技术C A、去下个XX.dll,下好后打开系统盘,找到windows文件夹,打开后找到system32打开,把XX.dlll放进去。这个DLL上百度一下就有得下的了。
B、打开腾讯电脑管家的电脑诊所之后,搜缺失的dll文件,会自动出来,点立即修复。重启电脑后就可以了。
参考技术D 缺少dll .net core 版本 有点问题 引用的dll 不会自动输出到项目目录下去,需要手动拷过去,或者在项目里指定复制到项目目录 ,你看看你的mysql是不是引用了第三方的库 并且在输出目录下没有生成这个dll ,好像在vs2017 15.3以后就没有这个问题了追问

有的

追答

你看输出目录下不是项目目录

比如debug

也就是exe的同级目录下

第5个回答  2019-05-06 怎么会引用system.drawing呢,这个应该是控制台应用程序吧,你把引用的system.drawing和windows.form之类的删掉试试。追问

引用的是MySql.Data.dll

追答

MySql.Data.dll需要对应的.net版本才能运行,你的.net版本太老了,才2.1。
一般来说,下载的时候,会把不同版本的MySql.Data.dll放到不同的文件夹2.0,4.0,4.5等等,那个就是对应的版本。

追问

我MySql.Data.dll是4.5的。  应该要 .net framework4.5的目标框架 ,  我下载了 .net framework4.5 但显示已安装 

目标框架只有.net core  没有 .net framework

追答

你换vs2015或vs2017试试

至少要2012才能支持.net4.5吧

VS2017:工具 -> 获取工具和功能 -> 右边安装.net桌面开发 .NET 4 ~ 4.6 开发工具

SQL Server连接本地数据库时系统找不到指定的文件,配置管理器无法连接到 WMI 提供程序

SQL Server连接本地数据库时的异常

作者:coder小码(coderxm)


最近想学点SQL server,几个月前下过,可中间电脑换过机名,重装过系统(电脑不是键盘一下没反应就是鼠标没反应),充分暴露出windows的不稳定。这告诉我们:要早点和windows离婚吧,换一个漂亮又好用点的linux系统(关键是免费开源),如果有钱可以跟风mac。哈哈!所以呢,系统里的环境变量全部没了,除了操作系统本身的变量外。经验告诉我们:换系统就是换血,把C盘的除系统外的渣渣都清除了,还好是其他盘的东西还在,不过又得手动配置她们的变量了。。。


01 SQL SERVER初探

初入SQL SERVER的可能不知道有两种版本分类的SQL SERVER,那现在就普及一下。第一种是MSSQL SERVER,全称是Microsoft SQL Sever,开发版,目前的大型网站一般使用Oracle或者MSSQL,JSP.PHP.ASP都可以。一般是企业级的商务网站使用的。全功能SQL数据库服务器,从2017版开始,横跨任何平台,完全免费。第二种是Express ,商业免费,有对应的限制一般都用这个。是SQL SERVER的简洁版,可以这样说。

但开始我也不懂啊,也没人叫我怎么玩哈,所以最近发现SQL不见了,就急忙下个SQL server2019最新版的玩一下。不行的是下载了6个多G,连带管理工具一起下(都是开热点的流量啊!啊啊!),N久后,才下完!然后安装!!!N久。

起初是发现从前的2017版的没有了,主要是SSMS没有,SSMS是SQL SERVER Management Studio,SQL SERVER管理工具,用来管理数据库的,而我们下的是SQL SERVER的一个下载工具罢了。没SSMS还是玩不起来。


02 第一个问题:配置管理器无法连接到 WMI 提供程序

这个问题我记住你了,化成灰我都认得你!!

技术图片

 

弄了我一整晚,网上都查遍了,每个有效的方法。现在给大家清楚讲一遍,按上面的说,WMI,(Windows Management Instrumentation 即windows 管理规范)是一项核
心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。简单点,就是管本地和远程计算机的一个东西。有点内味了!!也就是说要这个服务来帮助SQL配置管理器管理计算机的,那怎么管呢?

有两种解决方法:要么是没权限,弄权限;要么是服务器真的不能访问了,解决服务器。很明显,连自己的本地的机子,还说无法访问,那就是没权限啦。查查了半天,说要弄一个NETWORK SERVICE的权限,也弄了没反应,估计还不够吧!之后又有其他办法,说进如:"C:Program Files (x86)Microsoft SQL Server"里面,我的是这样的,里面是90‘100’120‘的数字文件夹(跟系统打交道的),不是真正的SQL SERVER文件夹(有界面的那个)。

其中有一个shared文件夹里有150Sharedsqlmgmproviderxpsp2up.mof这个文件。


技术图片

 

我的是150/,可能不一样。之后在命令行输入:

 

mofcomp “C:Program Files(x86)Microsoft
SQLServer150Sharedsqlmgmproviderxpsp2up.mof”

结果:
技术图片

 

将本地数据放到SQL储存库中了,就表示能访问到。那mof是个什么东西呢!

 

技术图片

 

反正就是微软瞎造的东西,跟配置有关。不管了!可以正常打开配置管理器,但是里面项目为空,啥也看不到呀!正常是这样的:

 

技术图片

但是右边什么也没有,而且,SSMS还是连不上本地的数据库实例。


第二个问题:系统找不到指定的文件

GUI是这样的:
技术图片

 

本来是输入个本机名字就行了,可就是死活连不上。SSMS: 想玩我?没门!这个时候,还是用的2017的SQL配置管理器,2019的SQLEXPRESS,连2019的配置管理器都没有,当然弄不了了。那之前的努力都白搭,花了我N久弄完!

其实挺简单的,一步解决上面两个问题,还能使用最新的2019SQL SERVER。对啦,就是重新安装,不用开浏览器上什么官网,直接follow me。哈哈!

找到SQL SERBER的安装目录,就是那个有安装的SQL server2019:


D盘文件夹:
技术图片

sqlserver文件夹里是这样的:

技术图片

之后一路默认安装:

技术图片


安装期间会同时实例化本地的数据库,以windows管理员的身份管理,完成后就能看到开始菜单里有2019配置管理器了:

技术图片

 

sercice服务里也会有SQL服务,之前是没有的,即使解决了第一个问题后。估计这就是第二个问题没解决的原因吧!

没SQL server服务,就没得玩喽!

 

技术图片


 

所以最后献上玩美结果:

技术图片

 

哈哈,如果要用Network service权限解决的话请参考另一篇
最后祝大家玩的愉快!!


最后附上:小码blog
微信公众号:小码之光

技术图片

以上是关于C# 连接数据库时 系统找不到指定的文件。的主要内容,如果未能解决你的问题,请参考以下文章

未找到指定的sqlserver

C# - Kerosene ORM - 找不到默认引擎和连接字符串

这是啥错误? “无法添加数据连接。找不到任何适合指定文化或中性文化的资源。”

C#系统找不到指定的文件

DLL 加载失败:找不到指定的模块。在机器人框架中连接 Oracle 数据库

FTP下载时连接正常获取不到数据