C# 远程计算机上SQL Server Express的连接字符串?

C# 远程计算机上SQL Server Express的连接字符串?,c#,sql-server,visual-studio-2012,sql-server-express,C#,Sql Server,Visual Studio 2012,Sql Server Express,我为我的一个朋友创建了一个WinForms程序,它使用SQL Server Express数据库。在本地,我可以很好地连接到我的SQL Server Express,当我将应用程序部署到他的计算机上时,它也可以工作。但是,我很难从我的机器连接到他的SQL Server Express实例(我试图在vs2012中以调试模式运行该程序,但连接到了他的数据库)。该程序使用实体框架以备不时之需(我不这么认为) 我们已经设置了他的防火墙,允许我的IP地址访问他的计算机和他的SQL Server。。。因此,

我为我的一个朋友创建了一个WinForms程序,它使用SQL Server Express数据库。在本地,我可以很好地连接到我的SQL Server Express,当我将应用程序部署到他的计算机上时,它也可以工作。但是,我很难从我的机器连接到他的SQL Server Express实例(我试图在vs2012中以调试模式运行该程序,但连接到了他的数据库)。该程序使用实体框架以备不时之需(我不这么认为)

我们已经设置了他的防火墙,允许我的IP地址访问他的计算机和他的SQL Server。。。因此,我可以通过远程桌面登录,也可以从pc使用SSM进行连接,查看所有数据库。。。。但为什么我不能使用vs2012进行连接?我认为这与连接字符串有关,但尚未找到有效的解决方案

以下是我尝试过的:

这些来自:

很明显,为了这篇文章的目的,IP地址已经改变了


有什么想法吗?

以下是您需要在另一台计算机上检查的事项列表:

  • 是否启用了TCP/IP协议?转到{instance}的SQL Server配置管理器->SQL Server网络配置->协议
  • 在configuration manager中为侦听启用了哪些IP地址?转到TCP/IP属性->IP地址选项卡
  • SQL Server浏览器已启动
  • 防火墙设置正确–您希望在端口1433上启用TCP和UDP通信
  • 服务器允许远程连接?在SSMS中打开该实例的属性并检查连接选项卡
您已经使用了连接字符串属性:

数据源
没有这样的事情,我怀疑这只是一个打字错误(使用剪切粘贴而不是抄写是值得的)。该属性中实际上有一个空格,因此应该是:

数据源

您如何设置防火墙?你在同一个网络上或通过NAT设备(路由器)连接到他的计算机?哦,这些连接字符串是什么?EF在创建tsql脚本时为您创建自定义字符串,它们位于项目的app.config文件中。他“设置”防火墙,以便我可以连接到他的计算机,这两个计算机都位于不同的网络(NAT设备)上。第一个连接字符串是EF生成的(但我是在本地生成的,不使用他的IP地址),所以我想我可以更改IP地址,然后就可以了,但不幸的是,情况并非如此。“有困难”是什么意思?你收到错误信息了吗?如果是,是什么?您是否尝试了
数据源
而不是
数据源
?您是否验证了他的SQL浏览器服务正在运行?SQL Express是否设置为允许远程连接?@AaronBertrand-感谢您的建议,因为这是问题所在。我使用的是
DataSource
而不是
DataSource
,这就解决了问题。如果你把它作为答案贴出来,我可以给你打分,这样你就可以得到学分了。谢谢亚伦…隧道视觉有时很糟糕:)
Server=100.100.100.100\SQLExpress;Database=TestDB;User Id=UserID;Password=myPassword;

DataSource=100.100.100.100\SQLExpress;Database=TestDB;User Id=UserID;Password=myPassword;