SSMS连接SQLExpress后Visual Studio无法连接数据库的求助及解决记录
解决Visual Studio与SSMS双向连接SQLExpress数据库的问题
问题背景
我在Visual Studio 16.0.3里搭了个小型项目,用的是SQLExpress数据库,一开始连接和EF迁移都没问题。结果用SSMS 17.5打开并操作这个数据库之后,回到VS里就傻了——虽然SQL Server Object Explorer还能看到这个库,但死活连不上。我试了一堆办法:
- 在SSMS里分离数据库
- 关掉SSMS
- 重启VS
- 重启电脑
- 甚至在任务管理器里重启SQLExpress服务
但都没用,就想实现VS和SSMS能同时正常连接这个数据库,求个靠谱的解决方案。
解决步骤
其实问题根源在于原连接字符串用了LocalDB的方式直接挂载SQLExpress的MDF文件,这种方式在SSMS操作后很容易出现文件锁定或者连接模式冲突,换成直接连接SQLExpress实例的方式就搞定了:
原连接字符串(导致冲突的版本)
<add name="context" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\db.mdf; Integrated Security="True"/>
修改后的连接字符串(正常工作版本)
<add name="context" providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS; Database=db;Integrated Security=True; Connect Timeout=15;Encrypt=False;ApplicationIntent=ReadWrite; MultiSubnetFailover=False" />
最后一步
改完连接字符串后,记得在VS的SQL Server Object Explorer里添加一个新连接,目标选.\SQLEXPRESS实例下的db数据库,之后不管是在VS里操作还是切到SSMS里改数据,都能正常连接了。
内容的提问来源于stack exchange,提问作者clarence_odbody
相关产品推荐
相关产品推荐

