【发布时间】:2021-01-07 15:41:33
【问题描述】:
我用它的数据库制作了一个 Windows 窗体应用程序,我想发布它。该应用程序在我的系统中运行得非常好,但是当我在另一台 PC 上运行它时,它显示有关无法连接到其数据库的错误。 我也将数据库 mdf 和 ldf 文件放在程序文件夹中,但我的应用程序不起作用。
这是我的连接字符串:
string connectionSt = "Data Source=DESKTOP-NLKJ55F;Initial Catalog=IndustryContracts;Integrated Security=True";
【问题讨论】:
-
您使用的是什么类型的数据库?当您应该使用像 Sqlite 或 Access 这样的 in-process 数据库时,您是否犯了使用像 Sql Server 这样的 server 数据库的错误?
-
我用的是sql server
-
Sql Server 旨在一次支持多个用户。它希望在专用机器上一直在后台运行,使用大量系统 RAM 来缓存数据,即使您的应用程序没有运行。它具有复杂的部署,需要管理员权限并涉及设置安全和连接属性。对于表单应用程序中的本地数据库来说,这是一个非常糟糕的选择。
-
大多数时候,您不会发布数据库(除非用于静态查找等)。相反,我建议将连接字符串放在开发机器和目标机器的环境中(例如 .NET Core 用户机密或环境变量),并将数据库放在您需要的位置。如果数据库架构发生更改,您可以在其上运行迁移(作为手动脚本或作为 EF 迁移。)
-
什么是连接字符串。 mdf 文件是附加到 SQL Server 还是使用 (localDb)AttachDatabase?本地 Db 使用数据库的默认文件夹。如下所示:AttachDBFilename=c:\asd\qwe\mydbfile.mdf。本地数据库意味着您没有 SQL Server 并且数据库很小。不要同时使用 Server=myServerAddress;和 AttachDBFilename。
标签: c# sql ado.net windows-forms-designer