如何从局域网运行.mdf数据库?

时间:2018-07-24 08:33:14

标签: c# sql-server database

我有一个C#(.NET Framework 4.5-MVS 2015)项目,该项目具有带有本地生成的.mdf文件的基于服务的数据库。我使用的Microsoft SQL Server具有以下版本:13.0.1601.5。 在服务器PC上一切正常。我在局域网中与.mdf文件共享应用程序,但是来自同一局域网的客户端无法打开该应用程序。看来与数据库的连接不好。

我的连接字符串是这样形成的:

public static string attachedDbFile = "AttachDbFilename=" + currentWorkinglocation + "NCI_DB.MDF;";

public SqlConnection mySqlConnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;" + attachedDbFile + "Integrated Security=True");

我想念什么?

稍后编辑:

按照你们提供的步骤操作:

我的数据源现在是Microsoft SQL Server(而不是MSQL Server Db文件)。我已经将.mdf文件从我的服务器(在MSQL Server Management Studio中)附加到数据库中,选中了“允许远程连接选项”,并且将连接字符串更改为:

public SqlConnection mySqlConnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=myDbName;Integrated Security=True");

现在,该应用程序可以在我的本地主机(安装了sql服务器的PC)上运行,而无需.mdf文件。没关系。

但是,如果客户端尝试从我的共享位置通过LAN访问应用程序,则应用程序.exe再次崩溃,并显示以下错误消息:

enter image description here

我错过了什么吗?

解决方案: 在听取了我们同事的一些建议之后,并进一步研究了问题所在,解决方案是: -安装SQL Server 2017(完整版!-非快速版) -安装Microsoft SQL Server Management Studio -将mdf附加到数据库 -配置具有该数据库权限的帐户 -根据此更新连接字符串:

public SqlConnection mySqlConnection = new SqlConnection(@"Data Source=ip,port(1433-default);Initial Catalog=db_name;User ID=user;Password=pwd");

1 个答案:

答案 0 :(得分:5)

SQL Server仅支持本地磁盘上的数据库文件(或比LAN多的异类链接,例如iSCSI等)。如果您想通过本地网络共享对数据库的访问,是时候站起来拥有该文件的SQL Server实例,然后连接到该SQL Server客户端/服务器了。停止尝试通过网络上的文件对其进行访问。