我使用C#(Windows窗体应用程序)完成了一个项目,并使用MSSQL Server 2017进行数据库操作。我的项目如下:用户从列表框中选择一个值,然后按下按钮进行分析。经过这个过程之后,我对表中的值执行数学运算,并在DataGridView上列出结果。因此,用户将不会对数据库执行任何操作,您可以将其视为只读。
答案 0 :(得分: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所在的目录开始。
P.S。如果您大量使用sql数据库,我强烈推荐ssms,即SQL Server Management Studio。它使我的工作变得容易得多。可能也会帮助您。 :)
答案 1 :(得分: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
足以使其始终正常工作。