运行 另一台计算机上带有本地数据库的 c# 程序

Run a c# program with local database on another computer

为简单起见 - 我正在为我的大学作业开发一个课程项目。我在 WinForms 和 C# 中创建了一个应用程序。为了存储此应用程序的各种数据,例如注册信息、帐户和各种与应用程序功能相关的数据,我使用了 Microsoft SQL Server Database。现在最后,我意识到,我无法将项目发送给我的老师,它不会 运行 在他的电脑上,因为经过一些阅读和研究后我发现我可能需要一个 [=20=我找不到的 ]mdf 文件,我认为这是因为 我在 SQL 服务器应用程序 中创建了表,而不是通过 Visual Studio .

我的连接字符串:con = new SqlConnection(@"Data Source=MyPC;Initial Catalog=SISDB;Integrated Security=True");

如您所见,连接字符串已硬编码到我的计算机

我的问题是 - 要使此应用程序 运行 在我老师的计算机上运行时与数据库没有问题,需要哪些步骤或我应该做什么?

据我所知,您有几个选择:

运行您电脑上的软件

要么把你的电脑带给你的老师,要么使用你最喜欢的远程桌面软件。这应该允许您证明您的程序无需重新安装即可运行。

在你老师的电脑上安装数据库

这可能会涉及一些有关如何安装数据库以及模式和数据的说明。或者可能创建一个安装程序或脚本来执行全部或部分设置过程。这可能需要您的老师做最多的工作。

远程访问数据库

更改 connection string 以通过网络访问您的计算机。这可能会涉及在防火墙中打开端口,这可能很难在任何外部防火墙中进行。这也需要您的计算机在线。这样做的问题是测试的难度,并且可能会导致它对您有效但对您的老师无效的情况。

更改程序

有几种类型的 embedded databases 可以 运行 并部署为程序的一部分。 SqLite 可能是最流行的,但也有很多替代品。在某些情况下,将数据存储在常规 Json 文件中可能就足够了。此选项自然会涉及重写部分程序。

最后,我建议与您的老师交谈,解释情况并询问him/her哪种选择对你们俩来说最简单。

在现实世界中,您需要将数据库部署和升级视为初始设计的一部分。您通常会在数据库之上设计一个(网络)服务来为您的客户提供比 SQL.

更高的级别 API