【问题标题】:Search for SQL Server database installed on machine搜索机器上安装的 SQL Server 数据库
【发布时间】:2016-12-17 14:32:15
【问题描述】:

我正在部署一个 wpf 应用程序,我想知道连接到数据库的最佳方式是什么。

例如,在我安装我的应用程序后,我需要设置一个连接字符串来连接 SQL Server Express。

我读到一个帖子,它告诉我可以找到安装在机器上的 SQL Server,所以在我找到它之后,如何以编程方式连接它?

我想到的另一件事是,有一个文件我可以在 asp.net 中读取和写入连接字符串作为 web.config?

我知道有一个app.config 文件,但是在我部署它之后,我猜它变得无法访问了!

【问题讨论】:

  • 您可能不应该将数据库与客户端放在同一台机器上。将数据库放在一个中心位置,并在分发应用程序时在配置文件中包含数据库的位置。
  • 但是我要去,我会在我的客户端机器上安装一个 sql,我会在其他可以访问这个数据库的机器上安装相同的应用程序,那就是“服务器”!
  • SQL Server 最好放在专用的服务器机器上,而不是安装在客户的个人电脑上。
  • 你已经说过你有办法获取机器的sql实例,那么你需要做的就是显示一个用户界面,让用户选择一个。为了设置您的连接字符串,您的连接将是 .\instance name 或者如果它是网络连接 ip\instancename

标签: c# sql-server wpf entity-framework-6 setup-wizard


【解决方案1】:

如果是小型应用程序,将 SQL Server(尤其是 Express)放在同一台机器上并没有错。还有“localdb”功能。 无论如何,这段代码将找到您网络上的所有 SQL Server 实例。然后,您可以构建一个窗口来显示结果,让用户选择一个服务器,并从结果中构建一个连接字符串。请注意,服务器上的防火墙等可能会妨碍此过程 - 通常您会返回服务器名称但没有其他信息。您可以通过向防火墙添加例外来解决此问题。

 private  DataTable FindServers()
    {

        System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance;
        DataTable dt = instance.GetDataSources();
        return dt;

    }

【讨论】:

  • 没错,我坚持了下来。这是一个小型应用程序,只有客户“crud”、产品“crud”和预算“crud”。谢谢
【解决方案2】:

现在数据库层应该通过DataServiceMicroService 与应用程序分开。这将是数据访问层。

如果您不需要那种级别的分离并且仍在考虑直接连接到数据库的应用程序,我建议您使用配置来存储连接字符串,因为您可能希望涵盖数据库与 WPF 应用程序不在同一台服务器上的情况.

非网页应用的配置文件名为app.config,与网页应用的web.config完全相同。

自动查找已安装的 sql server 实例的问题很简单:如果在您启动应用程序的机器上安装了两个实例怎么办?应用程序如何知道使用哪个?

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多