【问题标题】:C# ADO.NET SQL Server connectionC# ADO.NET SQL Server 连接
【发布时间】:2018-09-25 13:13:47
【问题描述】:

当我做类似的事情时

string connString = @"Data Source=localhost\SQLEXPRESS;Database=TestDB;Integrated Security=True;";
string sql = @"select name, age from dbo.Student";

SqlDataReader reader;

SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd;

conn.Open();
cmd = new SqlCommand(sql, conn);

reader = cmd.ExecuteReader();

当我在本地计算机上运行名为 localhost\SQLEXPRESS 的 SQL Server 时。应用程序如何知道我正在连接到本地数据库,因为这只是一个名称而不是 IP 地址之类的地址?当我尝试将数据源更改为类似 "127.0.0.1" 时,为什么它不起作用?

我是 ASP.NET 的新手。感谢 cmets。

【问题讨论】:

  • 继续阅读instancing
  • 您只需将localhost\SQLEXPRESS 更改为127.0.0.1\SQLEXPRESS。不过,在这两种情况下,您都必须使用实例的名称。
  • 试试这个:string connString = @"Server=.\SQLEXPRESS;Database=TestDB;Trusted_Connection=True";

标签: c# asp.net .net sql-server


【解决方案1】:

假设你的 Windows 安装在你的 C 盘上 转到并在记事本中打开此文件 c:\Windows\System32\drivers\etc\hosts

你会在里面看到

127.0.0.1 本地主机

这会将 ip 地址 127.0.0.1 映射到本地主机

【讨论】:

    【解决方案2】:

    应用程序如何知道我正在连接到本地数据库,因为这只是一个名称而不是 IP 地址之类的地址?

    它的工作方式与您通过在地址栏中键入 stackoverflow.com 来访问 stackoverflow.com 的方式相同。它会进行 DNS 查找并为您自己解析 IP 地址。如果您愿意,您可以自己键入您的 IP 地址(和实例名称,请参见下一点),它仍然可以工作。 localhost 将解析为 127.0.0.1

    当我尝试将数据源更改为“127.0.0.1”之类的内容时,为什么它不起作用?

    因为您只给了它 IP,所以它会成功到达您的计算机 - 但您省略了 SQL Server 实例名称。它应该看起来像这样:

    数据源=127.0.0.1\SQLEXPRESS;Database=TestDB;Integrated Security=True;

    (注意“SQLExpress”)

    如果您想更好地处理 DNS,有很多文章,您至少应该对这些有基本的了解:https://www.thewindowsclub.com/dns-lookup

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多