【问题标题】:C# - How to connect to my computer's SQL Server from another computer?C# - 如何从另一台计算机连接到我计算机的 SQL Server?
【发布时间】:2018-04-30 01:39:02
【问题描述】:

我必须提交一个作业,这是我构建的一个 Winforms 应用程序,它使用了我在本地计算机上创建并存储的数据库。我的源代码包含多行

SqlConnection c = new SqlConnection(@"Data Source=ALYSSAUSF\SQLEXPRESS;Initial Catalog=UserData;Integrated Security=True");

它允许在调用时连接到数据库。我使用 Microsoft SQL Server Management Studio 完成这一切。我如何确定当我的教授在他的计算机上运行我的程序时,他可以连接到数据库?

【问题讨论】:

  • 你真的不能,除非你的计算机一直处于开启状态并将这些资源暴露给本地网络,并且你们都在同一个网络中,配置了防火墙等等。你的教授需要运行本地副本。

标签: c# sql sql-server winforms


【解决方案1】:

您可以使用您的代码分发您的数据库并连接到本地副本

您可以使用“AttachDbFileName”来创建相对路径。

您可以通过连接字符串(存储在您的 App.config 中)或使用代码手动完成此操作

作为连接字符串的示例,来自文档:-

<add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />

供参考

https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.attachdbfilename(v=vs.110).aspx

【讨论】:

    【解决方案2】:

    最好连接字符串位于配置文件中,而不是代码本身。

    您的计算机和教授计算机必须在同一网络上。 如果两者在同一个网络上,您需要enable the Firewall Port for 1433。 之后,您需要您的计算机 IP 地址,然后您只需将连接字符串数据源更改为您的 prof 机器上的 IP 地址。

    【讨论】:

    • 有没有办法连接不同的网络?我记得有一次我在公寓里(显然是不同的网络),有一次我不得不在他的办公室里连接到教授的电脑,虽然它对我不起作用,但它对我的其他同学有用。
    • 另外,连接字符串实际上在我的代码中......直到我需要提交它时,我才真正考虑过这个问题:(
    • @AlyssaJune 在不同的网络中它也可以工作,但最好有静态 IP 地址。因此,当有任何重启 PC 或重置路由器时,IP 仍然相同。当在不同的网络上存在数据响应延迟时,您需要注意。
    • @AlyssaJune 大量的 ISP 阻止各种端口,包括传出的 SQL 流量。更简单的解决方案是使用 LocalDB 将数据库打包到应用程序中。
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多