c# – .NET未检测到任何SQL Server实例

前端之家收集整理的这篇文章主要介绍了c# – .NET未检测到任何SQL Server实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用.NET 4.5.1和sql Server 2012 Express在 Windows 8.1设备上开发了一段时间的C#/ sql Server应用程序.这一切都完美无瑕.最近,Visual Studio 2015已经发布,我决定升级.我还决定升级我的sql Server 2012,所以我支持所有内容,卸载它并安装了sql Server 2014 Express.配置完所有内容并恢复数据库备份后,所有内容仍在本地工作,因为数据库连接数据仍存在于存储的应用程序设置中.

当我在另一台设备上测试应用程序时,我发现它无法再连接到sql Server实例,并且无法使用它来检测它

System.Data.DataTable instances = sqlDataSourceEnumerator.Instance.GetDataSources();

应用程序也无法检测到我的开发机器上的sql Server实例,我认为这很奇怪,因为它在本地运行.但是,其他几个设备可以检测sql Server,因此我认为它不是防火墙相关程序. sql引擎服务和浏览器服务都是活动的.

我决定升级到Windows 10,重置它(干净安装,没有安装任何sql Server程序)并再次运行我的应用程序,因为我的网络中有其他运行sql Server的计算机,希望它能检测到这些.它没有. GetDataSources()方法在瞬间返回一个空的DataTable,而其他设备需要几秒钟来检测实例并返回正确的列表.

更愚蠢的是ODBC数据源管理器确实检测到这些网络实例,让我觉得它是一个与.NET相关的程序.

简介:两个设备不检测任何sql Server实例(甚至是本地),而网络中的其他设备则检测到.

解决方法

我决定使用 this ODBC implementation,因为它正常工作,并且可以实现异步/等待更新,因此它不会阻止UI.

在选择这个实现之前,我还使用sqlDataSourceEnumerator类进行了另一个项目,它完美地运行.其Target框架属性设置为.NET Framework 2.0.我发现当.NET目标版本为3.5或更低时,sqlDataSourceEnumerator会给出预期的结果(在我的机器上). .NET实现中的某些内容可能会随着时间的推移而发生变化,导致它在某些特定条件下停止工作.

编辑:在我的机器上我再次安装了sql Server 2012,一切(除了检测,将使用ODBC)再次正常工作.我要感谢大家的意见.

原文链接:https://www.f2er.com/csharp/244872.html

猜你在找的C#相关文章