如何在另一台计算机上 运行 包含本地 SQL 服务器数据库的 C# 应用程序?

How can I run C# app which contains local SQL Server database on another computer?

我创建了一个带有 SQL 服务器数据库的 C# 程序。它在我的电脑上运行良好,但在我朋友的电脑上却不行(我的朋友没有 SQL Sever 2008)。是否可以在没有任何安装的情况下制作它?如果可以,如何实现?

这是我的连接字符串:

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True"

据我所知,您有 2 个选项之一。您要么拥有一台服务器(一台设置为服务器并包含该数据库的个人电脑),要么您可以采取更简单的选择并将您的数据库托管在云中。许多网站提供免费服务以在有限的时间内或有限的存储空间内托管您的数据库。如果您有 Azure 订阅,那绝对是正确的选择。

SQL 服务器用于服务器数据库。您可以将项目更改为使用 SQL Server CE(SQL Server Compact Edition),它是一个单文件本地数据库。它与 "true" SQL 服务器非常相似,因此它可能是最简单的解决方案。除了连接字符串外,您的代码可能不会更改。

使用数据库所在的本地计算机的 IP 地址; 1433 是默认端口号。然后相应地修改连接字符串:

connectionString="Data Source=190.190.200.100,1433;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"

如果您想在没有安装 SQL 服务器的情况下 运行 您的程序,您必须使用基于服务的 sql 数据库。see this image

可以通过Visual Studio添加本地数据库(项目-->添加新项)

第一次在防火墙中打开1433端口,如果不需要可以关闭防火墙。 转到 运行=>cmd=>Ipconfig 找到网卡 activity。像

一样显示

比如我的电脑只有无线网络,而我的地址在私人局域网中 is:192.168.100.165 现在您更改 web.config.

中的连接字符串
connectionString="Data Source=192.168.100.165;
Initial Catalog=yourDataBase;User ID=yourUsername;Password=yourPassword;"

If you don't know "yourUsername" and "yourpassword" please refer link and create username and password in MsSQL https://msdn.microsoft.com/en-us/library/aa337562.aspx

如果你想从互联网连接数据库,你需要打开你的路由器端口

如果您需要在您朋友的计算机上使用 SQL 数据库而不是从您自己的计算机上托管,我的解决方案将满足您的需求。

使用适当的数据库在任何设备上本地处理数据库的最便宜的方法是转换为 SQLite。这是一种更轻量级的本地设备替代方案,根本不需要任何用户安装 SQL 服务器。

还有一些替代方法,例如将信息写入隐藏文件(如果您不希望您的应用程序被黑客入侵,通常是二进制文件)。

简而言之,如果您要托管数据库,请只考虑 SQL 数据库,否则请使用替代方案。

如果您的连接字符串如下所示

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True"

那么您应该在您朋友的电脑上安装 sql localdb 2012.msi。 并确保 .mdf 文件与您计算机上的位置相同。