【问题标题】:How to run desktop application with its Sql Server database on a machine that have not SQL server installed如何在未安装 SQL Server 的机器上使用其 Sql Server 数据库运行桌面应用程序
【发布时间】:2012-08-25 07:37:47
【问题描述】:

我已经使用 Visual Studio 2010 和 SQL Server 2008 完成了一个桌面应用程序。 它在我的机器上运行良好(我有一个 SQL Server 2008 和 2005 )。 数据库是本地的且不可更改, 我希望这个应用程序能够在没有安装 SQL Server 的机器上成功运行。

我的连接字符串是:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KBank.mdf;Integrated Security=True;User Instance=True;Connection Timeout=300

我想知道制作它的最佳和最简单的方法。谢谢

【问题讨论】:

    标签: c# sql sql-server visual-studio connection-string


    【解决方案1】:

    最简单的方法是为您的应用程序创建一个设置,将 SQL Server 2008 声明为先决条件。就是这样。

    如需进一步帮助,您必须提供有关如何在应用程序中使用数据库以及是否有办法托管应用程序将连接到的公共 sql 服务器实例的更多信息。

    【讨论】:

      【解决方案2】:

      如果您使用AttachDbFilename=|DataDirectory|\KBank.mdf;User Instance=True 方法,那么您别无选择,只能在该/每台应该使用的机器上本地安装 SQL Server Express(并且没有其他版本!)你的申请。

      在我看来,这种方法存在严重缺陷,并且限制了您的灵活性。

      我的建议是使用 real 服务器方法:将您的数据库放到服务器上(在您的开发环境和生产环境中),然后您可以灵活地使用每个用户机器上的 SQL Server 实例(如果有意义的话),或者您可以拥有一个客户端仅连接到的集中式服务器(未安装本地数据库服务器)。

      【讨论】:

      • 如果可能,请发布一些有关您的建议的资源。谢谢
      • @Hassan:嗯,这只是使用 SQL Server 的“正常”方式——很难说什么样的链接会有用——可能以the SQL Server Developer Central ON MSDN 为起点。只需避免处理“用户实例”或AttachDbFileName= 的所有内容...将您的数据库放在服务器上,然后使用服务器上的数据库逻辑名称从客户端与它对话 - 你不需要不必搞乱磁盘上的文件或类似的东西......
      【解决方案3】:

      如果数据库是“本地且不可更改”,那么 compact edition 怎么样?这样你的客户就不需要安装完整的 sql server 实例了

      【讨论】:

      • 我认为这将是一个很好且灵活的解决方案,所以如果您能给我一些精简版资源,我将不胜感激
      • 你好 Nick,我已经尝试过了,我需要在用户机器上使用 SQL Server compact,我的连接字符串是 Data Source=|DataDirectory|\KBank.sdf;Encrypt Database=True;Password=knowledgebank ;File Mode=shared read;Persist Security Info=False 这是我的查询 da = new SqlCeDataAdapter("select info_id,info_text,cat_id from info " + cat, a.GetConnectionStringByName()); SqlCeCommandBuilder br = new SqlCeCommandBuilder(da); ds = 新数据集(); da.Fill(ds, "em");填充_Rb();它在我的电脑上工作,在其他机器上没有工作
      【解决方案4】:

      我同意尼克的观点。如果您不想在机器上安装 SQL Server,那么 SQL Server 精简版将是一种选择。语法与 SQL Server 非常相似,但有一些限制。就像你不能有一个紧凑版的存储过程等等。

      您可能希望访问SQL CE Tutorial 作为开发资源。

      【讨论】:

      • 谢谢,我使用了 SQL Server Express Edition,然后我使用了 SQL Compact Edition,然后我使用了 OLE MS-ACCESS 数据库,试图让应用程序在不需要第三方组件的情况下运行......但它需要每次都有服务器>>所以我使用了 SQLite 版本 3 .. 问题解决了
      • 我在尝试加密 SQLite 时遇到了一些问题,但我用我探索过的特殊加密方式解决了它:D
      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      相关资源
      最近更新 更多