我有问题将我的应用程序(在计算机A上)连接到具有数据库(.mdf
文件)的另一台计算机(计算机B)。
这是我的代码
<connectionStrings>
<add name="HS_App.My.MySettings.DatabaseHSConnectionString"
connectionString="Data Source=Computer-B\SQLEXPRESS;AttachDbFilename=Computer-B\Users\Computer-B\Desktop\HS App\DBHS\DatabaseHS.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
计算机A和B通过adhoc连接,并具有相同的环境IP地址。我能这样做吗?提前谢谢。
答案 0 :(得分:0)
如果要使用AttachDbFileName
的本地SQL Server Express实例用于位于另一台计算机上的数据库,它将无法工作:SQL Server需要本地文件系统访问,因为它执行一些有趣的底层文件系统使用数据库文件(.mdf
和日志文件),因此位于网络共享(UNC路径)或Internet位置的MDF文件将不起作用,请参见此处:http://msdn.microsoft.com/en-us/library/ms254500(v=vs.80).aspx
System.Data.SqlClient将替换字符串解析为针对本地计算机文件系统的完整路径。因此,不支持远程服务器,HTTP和UNC路径名。如果服务器不在本地计算机上,则在打开连接时抛出异常。
如果要通过TCP连接到另一台计算机上已经运行的SQL Server Express实例,则需要首先在该服务器上设置TCP连接。请注意,您不能使用AttachDbFilename
,因为该选项仅适用于SQL Server Express的“用户实例”。