3

在我的开发计算机上,我有 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\";集成安全=True;用户实例=True";

4

3 回答 3

4

您的连接字符串告诉 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 数据集,将数据集的内容保存/加载到 Xml 文件(通过WriteXml()ReadXml())。如果您正在处理的数据量的大小相当有限,那么 DataSet 是保持完整性(通过强类型和明确定义的模式)和可移植性的好方法。
于 2010-10-19T19:56:00.770 回答
2

如果你想在其他电脑/服务器上运行它,你还需要安装 SQL Server(需要将你的 .mdf 附加到它)或 SQL Server Express 安装。

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

于 2010-08-29T20:11:25.867 回答
1

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

在 Setup.exe 中包含 SQl Express 并不难(参见 PreRequisites)。

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

于 2010-08-29T20:10:11.997 回答