在Visual Studio 2017中创建安装项目(使用SQL Server数据库)

问题描述 投票:0回答:2

我使用C#(Windows Form Application)完成了一个项目,我使用MSSQL Server 2017进行数据库操作。我的项目如下;用户从列表框中选择一个值并按下按钮进行分析。在此过程之后,我对表中的值执行数学运算,并在DataGridView上列出结果。因此,用户不会对数据库执行任何操作,您可以将其视为只读。

  • 将此项目安装到用户时,我可以遇到哪些问题?
  • 我是否需要为用户安装MSSQL Server?我在我自己的计算机上安装它并将其安装在我的计算机上并且没有问题,我已将MSSQL Server中的数据库备份添加到我的安装文件中。这样就足够了吗?
  • 我在另一台计算机上安装数据库操作时会遇到问题吗?
  • 我是否需要更改SQL连接子句?
c# visual-studio-2017 setup-project sql-server-2017
2个回答
1
投票

好吧,至少可以说,使用SQL Server是极端的。 SQL Server更适合数据库密集型应用程序,它需要在计算机上设置大量内容,并且通常不用于客户端应用程序,尽管大型桌面应用程序可能使用SQL Server Express(缩小版,免费版)需要这么多的表现。

我建议你把它放在一边并使用SQL Server Express LocalDb(一个.mdb文件),它可以很容易地安装;或者您甚至可以使用不需要安装的SQLite。

关于你的问题:

将此项目安装到用户时,我可以遇到哪些问题?

您可能会遇到很多问题,SQL Server安装程序可能因数千个不同的问题而失败,卸载可能很容易使系统处于损坏状态。

我是否需要为用户安装MSSQL Server?我在我自己的计算机上安装它并将其安装在我的计算机上并且没有问题,我已将MSSQL Server中的数据库备份添加到我的安装文件中。这样就足够了吗?

如果您想使用SQL Server,那么是的,需要安装。

我在另一台计算机上安装数据库操作时会遇到问题吗?

假设安装没问题,可能不是。

我是否需要更改SQL连接子句?

不是真的,使用Server= .\KnownServerInstanceName就足以让它始终有效。


1
投票

如果您想要允许不同计算机上的用户使用此程序,则需要访问该数据库。这可以通过为数据库提供数据库或将数据库放在可远程访问的服务器上来完成。

将此项目安装到用户时,我可以遇到哪些问题?

根据不同的因素可能会出现许多问题,但是如果您为数据库使用远程服务器,由于不知道如何访问数据库,您可能会有更少的问题。

了解您可能无法访问远程服务器以放置数据库,将数据库文件放在用户计算机上可能更容易。最有可能的问题源于您的数据库文件位置和连接字符串不匹配。因此,如果您决定将数据库下载到用户计算机,则很可能您的错误与数据库文件位置有关。

将此项目安装到用户时,我可以遇到哪些问题?我是否需要为用户安装MSSQL Server?

您很可能只需要向用户提供数据库文件。您可能遇到的问题是,如果您向用户提供数据库并将其放在计算机上,则可能会遇到与app.config中的连接字符串相关的错误数据库位置问题。

这样就足够了吗?我在另一台计算机上安装数据库操作时会遇到问题吗?我是否需要更改SQL连接子句?

是的,如果您将数据库下载到用户计算机,则需要更改SQL连接子句,除非您可以将数据库放置在连接字符串中的匹配位置。

我在另一台计算机上安装数据库操作时会遇到问题吗?

你不应该。

我是否需要更改SQL连接子句?

如果将数据库放在服务器上,请确保不要。也许您将数据库下载到用户计算机。

边注

如果您想使项目可移植而不在服务器上安装数据库,我建议您创建一个.mdf文件(这是Microsoft SQL Server使用的文件格式。)并在项目的调试文件夹中创建一个文件(或者在哪里永远你的.exe文件),并将其命名为DATABASE,然后将.mdf放入此文件中。现在更改连接字符串以从当前目录中找到放置在DATABASE文件夹中的此数据库,该目录将是项目的Debug文件夹。这应该解决您的大多数问题,因为项目在这里,数据库文件也是如此。

以下是设置conString的方法:

connectionString="data source={AppDir}\data\DATABASE\yourDataBaseName.mdf

在你的代码中:

ConnectionStringSettings c = ConfigurationManager.ConnectionStrings[name];  



if (c == null)
{
    ... handle missing connection string ...
}
string fixedConnectionString = c.ConnectionString.Replace("{AppDir}", AppDomain.CurrentDomain.BaseDirectory);
... use fixedConnectionString

这将始终从您的.exe所在的目录开始。

附:如果您使用sql数据库很多,我强烈推荐ssms,这是SQL服务器管理工​​作室。它让我的事情变得更加容易。也可以帮到你。 :)

© www.soinside.com 2019 - 2024. All rights reserved.