C# SQL 从另一台 PC 访问数据库

C# SQL database access from another PC

我正在使用 C#、.NET Framework 4.5.2 和 SQL Server 2014 Express Edition (v12.0.2000)。我的要求是从另一台 PC 客户端系统访问该软件。软件在服务器 PC 上运行良好,但在客户端 PC 上无法访问。

工作至今

我按照以下两个微软官方文档使数据库可以在另一台PC上访问:

  1. https://docs.microsoft.com/en-us/sql/relational-databases/lesson-1-connecting-to-the-database-engine?view=sql-server-ver15
  2. https://docs.microsoft.com/en-us/sql/relational-databases/lesson-2-connecting-from-another-computer?view=sql-server-ver15

为了连接两台 PC,我遵循了 this tutorial

到目前为止的结果

我可以访问网络目录中的软件。我可以运行客户端PC上的.exe软件文件。我可以在客户端 PC 上访问 Microsoft SQL Server Management Studio 中的 SQL 服务器。

暂时做不到

到目前为止我唯一不能做的是我在客户端PC上的软件无法访问数据库。显示错误

Login failed for user

连接字符串

我认为应该是连接字符串错误。我尝试了三种不同的连接字符串,让我在这里写下:

  1. Data Source=.\SQLEXPRESS;Database=dbposrpc;trusted_connection=true;

  2. Data Source=.\SQLEXPRESS;Initial Catalog=dbposrpc;User ID=sa;Password=12345678;

  3. Data Source=tcp:DESKTOP-0DCQGE3,49172;Initial Catalog=dbposrpc;User ID=sa;Password=12345678;

SQLEXPRESS是SQL服务器实例名,DESKTOP-0DCQGE3是服务器PC名,49172是我选择的TCP端口。

要从远程 PC(客户端的 PC)访问软件,您需要在 Windows Defender Firewall with Advanced Security 中添加 inbound rules 用于托管软件的此端口,然后您还需要从您的端口​​转发该端口服务器电脑。

问题已解决!我遵循的所有步骤都是完美的。你可以这样说,如果你想使用以太网连接来连接到客户端的 PC。逐步按照相关步骤操作。关注连接字符串。使用数字3的连接字符串。让我再写一次以澄清。

Data Source=tcp:DESKTOP-0DCQGE3,49172;Initial Catalog=dbposrpc;User ID=sa;Password=12345678;

这里SQLEXPRESS是SQL服务器实例名,DESKTOP-0DCQGE3是服务器PC名,49172是我选择静态的TCP端口

我是如何解决这个问题的?

我刚刚清除了解决方案,再次重新启动项目,一切正常。