c#连接本地MDF DB文件

时间:2010-08-29 20:07:25

标签: c# database connection mdf

在我的开发计算机上,我有MS SQL Server / Visual Studio 2005.我的程序可以正确连接到我的本地数据库并使用它。但是我的其他计算机(非开发人员)没有MS SQL Server / Visual Studio 2005,也没有连接到数据库。它吐出以下内容:

“在建立与服务器的连接时出现错误。连接到SQL Server 2005时,此错误可能是由于在默认设置下SQL Server不允许远程连接这一事实....”(错误:26)。

这是否意味着我必须在非开发计算机上安装SQL Server 2005?还有其他办法吗?

我的连接字符串是:

“数据源=。\ SQLEXPRESS; AttachDbFilename = \”“             + Directory.GetCurrentDirectory()             +“\ DB.mdf \”; Integrated Security = True; User Instance = True“;

3 个答案:

答案 0 :(得分:2)

如果您想在其他PC /服务器上运行它,您还需要安装SQL Server(需要附加.mdf)或安装SQL Server Express。

另一个技巧是更改连接字符串,使其指向运行数据库的另一台PC /服务器。

答案 1 :(得分:2)

您的连接字符串告诉Sql Server Native Client ADO.NET Provider尝试连接到名为 SQLEXPRESS 的Sql Server实例,该实例将管理存储在文件 DB.mdf中的数据库即可。由于您的客户端计算机没有安装Sql Server Express,因此它不会找到要连接的数据库。

您需要:

  • 在客户端计算机上安装Sql Server并在那里部署数据库。
  • 切换到Sql Server Compact Edition(SqlCE - 嵌入式数据库)并重新构建应用程序以使用便携式数据库文件(使用SqlCE)。
  • 使用强大的数据库引擎并完全切换到ADO.NET DataSet,将DataSet的内容保存/加载到Xml文件(通过 WriteXml() ReadXml()< / em>的)。如果您正在处理的数据量相当有限,则DataSet是维护完整性(通过强类型和定义良好的架构)和可移植性的好方法。

答案 2 :(得分:1)

是的,您确实需要在目标计算机上使用MS-SQL(Express)。本地安装或与服务器的连接。

在Setup.exe中包含SQl Express并不困难(请参阅先决条件)。

另一种方法是使用SQL-CE或Sqlite或(甚至)MS-Access。它们是“嵌入式”数据库引擎,因此您只需要分发DLL。